ぶていのログでぶログ

思い出したが吉日

mruby

rfコマンドv1.22.0 / mruby-yyjson v1.5.0をリリースした

前回の記事は[こちら(https://tech.buty4649.net/entry/2024/06/24/123741)。 前回のアップデートからrfコマンドはv1.21.0からv1.22.0に、mruby-yyjsonはv1.2.0からv1.5.0になった。 このアップデートで念願のjson出力時の色付けに対応した!やったぜ! json…

mruby-test-stubを作った

mruby-yyjsonのテストコードを書くために、一部stubしたい部分ができた。 mruby-mtestにはstubする機能なく、mgem-listにもなさそうなので作った。 作ったと言ってもほとんどminitestのポーティングみたいな感じでスッと作れてよかった。 使い方 mrgem.rake…

awkでmrubyを実行できるようにした(?)

GNU awk(以下awk)のDynamic Extension機能を使って、awkの内部でmrubyを実行できるようにしてみた! 上記の画像のように、mruby.soをローカルにダウンロードし、-l./mruby.soオプションを付与するとmruby_eval関数が使えるようになる。 mruby.soはリポジトリ…

rf v1.21.0 / mruby-yyjson v1.2.0をリリースした

前回の記事はこちら。 先日リリースしたmruby-yyjsonにいくつか機能追加と不具合の修正したv1.2.0をリリースした。 それに伴ってrfで利用しているmruby-yyjsonのバージョンも上げ、v1.21.0にした。 Features Update mruby-yyjson by @buty4649 in https://g…

rfコマンドv1.20.0をリリースした

前回の更新はこちら。 昨日の記事で書いたmruby-yysjonを早速組み込んだのと、ちょっとした不具合の修正をした。 前回からの記事の変更点 Use mruby-yyjson instead of mruby-json by @buty4649 in https://github.com/buty4649/rf/pull/205 fix: bug: file …

mruby-yyjsonを作った

前記事に続いてmrubyネタ yyjsonという高速でC言語から扱えるJSONライブラリがある。 github.com mattn.kaoriya.net これをmrubyから使えるようにしたmruby-yyjsonを作った github.com きっかけ rfではmruby-jsonを使っている。 mruby-jsonの処理速度に不満…

mruby-commit-idを作った

github.com かなりニッチだが、使用しているmrubyのコミットIDを示すグローバル定数としてMRUBY_COMMIT_IDとMRUBY_COMMIT_ID_SHORTを追加するmruby-commit-idを作った。 mrubyは日々開発が進められていてmruby-3.3.0の頃と今のmasterではbug fixされていたり…

rfコマンドv1.18.0をリリースした

前回の更新はこちら。 あまり更新内容はないけど、細かくバージョンアップしていくポリシーなので気にしない。 What's Changed Features Update text filter to join array with spaces instead of newlines by @buty4649 in https://github.com/buty4649/r…

rfコマンドv1.17.0をリリースした

前回の更新はこちら。 rfコマンドのv1.17.0をリリースした。リリースしたのは1月の末なのだが、私が新型コロナウィルスに罹患してダウンしていたのでブログの更新が遅れた…。健康第一 Features Remove BufferedIO due to performance issues, introduce new…

rfコマンドv1.16.0をリリースした

前回の更新記事はこちら。 rfコマンドv1.16.0をリリースした。主にbug fix github.com Features Remove bug fix code by @buty4649 in https://github.com/buty4649/rf/pull/149 Fix issue where tab was incorrectly matching as binary file by @buty4649…

rfコマンドv1.15.0をリリースした

新年一発目の更新。 年末に駆け込みでv1.14.0を出したので、前回ブログで書いたv1.13.0から2つアップデートした。 Features v1.14.0 Add changes for suppressing output when binary output is encountered by @buty4649 in https://github.com/buty4649/r…

rfを作っているときに得られたmrubyでCLIツール作成のTips

この記事はmrubyファミリー Advent Calendar 2023の22日目の記事です。 昨日は@kurod1492(黒谷 明大)さんのPicoRubyでMatz葉がにロボコンに挑戦でした。 私はrfというRubyで書けるCLIのテキストフィルタツールを作っています。 詳しくは昨日の記事を参照して…

rfコマンド v1.13.0をリリースした

前回ブログを書いたときはv1.6.0だったので7個くらいアップデートした。 今回までのアップデートでかなり実用的な機能を実装したので常用にも耐えられるのではなかろうと思う。 v1.7.0だけリリースビルドをミスったのでv1.7.1になっている。しょうがない git…

Zigを使ってWindows向けにmrubyをクロスビルドしたかったが失敗した

rfではLinux/Mac/Windows向けのバイナリを提供している。 LinuxとMac向けのバイナリについてはZigを使ってクロスビルドしている。 では、Windows向けはどうしているかというとgccを使ってクロスビルドしている。 何故かというと、rfのWindows対応を開発して…

rfコマンド v1.6.0をリリースした / Rubyでかけるワンライナーツール

前回ブログで書いたときはv1.4.0だったのでそこから2つほどバージョンアップした。 意識的にrfコマンドを普段遣いしていて*1気になったところと、jqコマンドのオプションの互換性を意識した変更をした。 github.com *2 github.com 主な変更点 -A オプション…

rfコマンドv1.4.0をリリースした

rfコマンドを普段遣いしていて気になったところをちょくちょく直していて、先程v1.4.0をリリースした。 前回ブログを書いたときはv1.1.0だったので3つほどバージョンアップした。 github.com github.com github.com 以下では、このバージョンアップによる変…

rfコマンドv1.1.0をリリースした

github.com rfコマンドのv1.1.0をリリースした。 もう少し機能を追加してからにしようと思ったけど、サクサクリリースしていこう精神でバージョンを上げた。 以下、追加された機能や変更点の説明をする。 バイナリをstripしてファイルサイズを少し減らした c…

Dash/Zealで使えるmruby APIのDocsetを作った

mruby APIのオンラインドキュメントをDocset化した。 DocsetはDashやZealで閲覧できる。 オフラインでmrubyのAPIを参照できるので便利。 なお、私はMacを持っていないのでDashでの動作確認はしていないのであしからず…。 ↓のFeed URLから追加できるはず(Zeal…

rfコマンドv1.0.0をリリースした / Rubyのコードでplain text/JSON/YAMLを整形できるCLIツール

Rubyのコードでplain text/JSON/YAMLを整形できるrfコマンドを作っている。 このrfコマンドのv1.0.0をリリースした。 といいつつも、前回のv0.2.0から大きく機能を増やしたということはなく、バグの除去やテスト環境の構築のみになっている。 だが、v0.3.0、…

Rubyのコードでplain text/JSON/YAMLを整形できるrfコマンドを作った

github.com 2023/05/15追記: リポジトリのリンクを追加(thx: id:k1low !!) モチベーション 私はcliでテキストを編集するときはawk/sedを使い、JSONはjq、YAMLはyqを使っている。 それぞれ単純な処理ならあまり苦労せず使えるのだが、複雑な処理をしたい場合…

mrubyを使ってWASMバイナリを作る

Zigで簡単クロスコンパイル 2022を読んでZigを使えばクロスコンパイルできることを知る -> Zigを使えばWASMバイナリが作れる ->つまりmrubyでWASMバイナリが作れるのでは?っと思いついたのでやってみたら、条件付きでWASMバイナリにクロスコンパイルできた…

Fukuoka mruby Kaigiでmrubyで始める自作シェルというタイトルで発表した

2022/10/15にオンラインで行われたFukuoka mruby Kaigiに参加しそこでmrubyで始める自作シェルというタイトルで発表しました。 内容的には、このブログで定期的に開発報告しているreddish-shell(自作シェル)の話です。 ワンバイナリでシステムコールを駆使し…

Rustでmrubyの拡張を書く

reddish-shellでRustからmrubyを呼び出すことができたので、逆もできないかと思って試してみたらすんなりできたのでメモしておく。 前提: rust-mruby crateを使う mrubyのAPIをRustから呼び出すためには、mruby.hをRustで定義し直す必要がある。 拙作のrust-…

reddish-shell v0.10.0 開発進捗 | mruby3.0対応, GithubActionsの設定, READMEのアップデート

v0.9.0のアップデートから1日くらいしか経っていないけどmruby3.0に対応したので新バージョンリリース。 commit一覧: 7e9242c v0.10.0 e5ef68b Merge pull request #3 from buty4649/readme e03874d Add notes on using iruby. 0319149 Update README.md 373…

reddish-shell v0.9.0 開発進捗 | 内蔵Rubyコマンド/break,continueの実装/for文の追加/シグナルハンドラーの見直し | mruby3.0対応の予定

reddish-shellのバージョンアップ報告。 粛々と開発つづけてきて、やっと普通のシェルくらいの機能にはなってきたかな?しかし、まだ実用までは長い。。 今回は特にシグナルハンドリング周りがとても大変だった…。 commit一覧 ba37780 Include all core gems…

reddish-shell v0.8.0 開発進捗 / 複数行サポート,バグ修正,コマンド補完,コマンド置換,while/until文の追加

前回から間が空いてしまったが久しぶりのバージョンアップ。 間が空いてしまったのは、あまりいい実装案が思いつかなかったのが原因。ooo このままだ、ズルズル開発が止まってしまうと思ったので、一旦実装したいやつを後回しにしてできるところから作ってい…

reddish-shell v0.7.0 開発進捗 / hisotryの有効化とthenの省略と$IFSの見直し

前回、if文におけるthenキーワードを省略できないと書いたが、画期的なアイディアをひらめいて解決したので嬉しくなってバージョンアップした。 そして、この記事を書いている途中でunless文のthenを省略できるようにすることを失念したことに気がついた…。 …

reddish-shell v0.6.0 開発進捗 | parser/lexerの見直しとif文/unless文の追加

期限のあるなにかに迫られていると、別のことが捗るわけでreddish-shell v0.6.0になった。 一区切りついたので、もう1つの進捗も上がるだろうたぶん・・・ commit一覧 * f4d5f0a Improve parser * 69a3c3c Improve lexer * 33e0a64 Add if statement * ced3…

reddish-shell v0.5.0 開発進捗

前回のアップデートからかなり時間が空いてしまったので、最近またちょいちょい触り始めている。 ある程度変更が溜まった、というかブログを書いたほうがモチベーションが上がりそうなのでバージョンをあげてみた。 今後も、ある程度変更が溜まったらバージ…

reddish-shell v0.4.0とLinuxシスプロの学び

先月からほそぼそと作っているシェルのv0.4.0をリリースした。 github.com 追加した機能としては リダイレクト機能 コマンド制御演算子 && / || / ;' /&` パイプ機能 cmd1 | cmd2 ビルトインコマンド builtin / cd / echo / puts %記法 %Q / %q bintestの追…