mruby
rfコマンドv1.23.0をリリースしたで書いた通りmruby-rapidyamlを作ったのでそれの紹介記事。 github.com rapidyamlとは? github.com rapidyaml(またはryml)は名前のとおり高速性を謳ったYAMLパーサーである。 rapidyamlのREADMEにはyaml-cppとの速度比較が…
前回の記事はこちら。 前回に続いてついにYAMLの色つけ出力に対応した!やったぜ。 また、JSONの色つけ出力も改善し、階層ごとにObject(HASH)のキーの色を変えるようにした。 これで視認性が上がるはず。 以下、変更点の詳細 Features Fix CI error on maco…
前回の記事はこちら。 前回のアップデートからrfコマンドはv1.21.0からv1.22.0に、mruby-yyjsonはv1.2.0からv1.5.0になった。 このアップデートで念願のjson出力時の色付けに対応した!やったぜ! jsonの色付け対応に併せてminify(-mオプション)にも対応して…
mruby-yyjsonのテストコードを書くために、一部stubしたい部分ができた。 mruby-mtestにはstubする機能なく、mgem-listにもなさそうなので作った。 作ったと言ってもほとんどminitestのポーティングみたいな感じでスッと作れてよかった。 使い方 mrgem.rake…
GNU awk(以下awk)のDynamic Extension機能を使って、awkの内部でmrubyを実行できるようにしてみた! 上記の画像のように、mruby.soをローカルにダウンロードし、-l./mruby.soオプションを付与するとmruby_eval関数が使えるようになる。 mruby.soはリポジトリ…
前回の記事はこちら。 先日リリースしたmruby-yyjsonにいくつか機能追加と不具合の修正したv1.2.0をリリースした。 それに伴ってrfで利用しているmruby-yyjsonのバージョンも上げ、v1.21.0にした。 Features Update mruby-yyjson by @buty4649 in https://g…
前回の更新はこちら。 昨日の記事で書いたmruby-yysjonを早速組み込んだのと、ちょっとした不具合の修正をした。 前回からの記事の変更点 Use mruby-yyjson instead of mruby-json by @buty4649 in https://github.com/buty4649/rf/pull/205 fix: bug: file …
前記事に続いてmrubyネタ yyjsonという高速でC言語から扱えるJSONライブラリがある。 github.com mattn.kaoriya.net これをmrubyから使えるようにしたmruby-yyjsonを作った github.com きっかけ rfではmruby-jsonを使っている。 mruby-jsonの処理速度に不満…
github.com かなりニッチだが、使用しているmrubyのコミットIDを示すグローバル定数としてMRUBY_COMMIT_IDとMRUBY_COMMIT_ID_SHORTを追加するmruby-commit-idを作った。 mrubyは日々開発が進められていてmruby-3.3.0の頃と今のmasterではbug fixされていたり…
前回の更新はこちら。 あまり更新内容はないけど、細かくバージョンアップしていくポリシーなので気にしない。 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をリリースした。リリースしたのは1月の末なのだが、私が新型コロナウィルスに罹患してダウンしていたのでブログの更新が遅れた…。健康第一 Features Remove BufferedIO due to performance issues, introduce new…
前回の更新記事はこちら。 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…
新年一発目の更新。 年末に駆け込みで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…
この記事はmrubyファミリー Advent Calendar 2023の22日目の記事です。 昨日は@kurod1492(黒谷 明大)さんのPicoRubyでMatz葉がにロボコンに挑戦でした。 私はrfというRubyで書けるCLIのテキストフィルタツールを作っています。 詳しくは昨日の記事を参照して…
前回ブログを書いたときはv1.6.0だったので7個くらいアップデートした。 今回までのアップデートでかなり実用的な機能を実装したので常用にも耐えられるのではなかろうと思う。 v1.7.0だけリリースビルドをミスったのでv1.7.1になっている。しょうがない git…
rfではLinux/Mac/Windows向けのバイナリを提供している。 LinuxとMac向けのバイナリについてはZigを使ってクロスビルドしている。 では、Windows向けはどうしているかというとgccを使ってクロスビルドしている。 何故かというと、rfのWindows対応を開発して…
前回ブログで書いたときはv1.4.0だったのでそこから2つほどバージョンアップした。 意識的にrfコマンドを普段遣いしていて*1気になったところと、jqコマンドのオプションの互換性を意識した変更をした。 github.com *2 github.com 主な変更点 -A オプション…
rfコマンドを普段遣いしていて気になったところをちょくちょく直していて、先程v1.4.0をリリースした。 前回ブログを書いたときはv1.1.0だったので3つほどバージョンアップした。 github.com github.com github.com 以下では、このバージョンアップによる変…
github.com rfコマンドのv1.1.0をリリースした。 もう少し機能を追加してからにしようと思ったけど、サクサクリリースしていこう精神でバージョンを上げた。 以下、追加された機能や変更点の説明をする。 バイナリをstripしてファイルサイズを少し減らした c…
mruby APIのオンラインドキュメントをDocset化した。 DocsetはDashやZealで閲覧できる。 オフラインでmrubyのAPIを参照できるので便利。 なお、私はMacを持っていないのでDashでの動作確認はしていないのであしからず…。 ↓のFeed URLから追加できるはず(Zeal…
Rubyのコードでplain text/JSON/YAMLを整形できるrfコマンドを作っている。 このrfコマンドのv1.0.0をリリースした。 といいつつも、前回のv0.2.0から大きく機能を増やしたということはなく、バグの除去やテスト環境の構築のみになっている。 だが、v0.3.0、…
github.com 2023/05/15追記: リポジトリのリンクを追加(thx: id:k1low !!) モチベーション 私はcliでテキストを編集するときはawk/sedを使い、JSONはjq、YAMLはyqを使っている。 それぞれ単純な処理ならあまり苦労せず使えるのだが、複雑な処理をしたい場合…
Zigで簡単クロスコンパイル 2022を読んでZigを使えばクロスコンパイルできることを知る -> Zigを使えばWASMバイナリが作れる ->つまりmrubyでWASMバイナリが作れるのでは?っと思いついたのでやってみたら、条件付きでWASMバイナリにクロスコンパイルできた…
2022/10/15にオンラインで行われたFukuoka mruby Kaigiに参加しそこでmrubyで始める自作シェルというタイトルで発表しました。 内容的には、このブログで定期的に開発報告しているreddish-shell(自作シェル)の話です。 ワンバイナリでシステムコールを駆使し…
reddish-shellでRustからmrubyを呼び出すことができたので、逆もできないかと思って試してみたらすんなりできたのでメモしておく。 前提: rust-mruby crateを使う mrubyのAPIをRustから呼び出すためには、mruby.hをRustで定義し直す必要がある。 拙作のrust-…
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のバージョンアップ報告。 粛々と開発つづけてきて、やっと普通のシェルくらいの機能にはなってきたかな?しかし、まだ実用までは長い。。 今回は特にシグナルハンドリング周りがとても大変だった…。 commit一覧 ba37780 Include all core gems…
前回から間が空いてしまったが久しぶりのバージョンアップ。 間が空いてしまったのは、あまりいい実装案が思いつかなかったのが原因。ooo このままだ、ズルズル開発が止まってしまうと思ったので、一旦実装したいやつを後回しにしてできるところから作ってい…
前回、if文におけるthenキーワードを省略できないと書いたが、画期的なアイディアをひらめいて解決したので嬉しくなってバージョンアップした。 そして、この記事を書いている途中でunless文のthenを省略できるようにすることを失念したことに気がついた…。 …
期限のあるなにかに迫られていると、別のことが捗るわけでreddish-shell v0.6.0になった。 一区切りついたので、もう1つの進捗も上がるだろうたぶん・・・ commit一覧 * f4d5f0a Improve parser * 69a3c3c Improve lexer * 33e0a64 Add if statement * ced3…