ぶていのログでぶログ

思い出したが吉日

reddish-shell

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

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

reddish-shell 開発進捗 v0.11.0 | Rust化完了

満足するところまで作れたのでv.0.11.0をマージした。 Rustで作り直す前にはあった機能を一部実装していない*1があるが、一旦区切りをつけたかったのでマージした。 割り切り重要。Done is better than perfect. いや意味するところは違うと思うけど…。 前回…

reddish-shell v0.11.0-beta4 開発進捗 | パイプライン、バックグラウンド実行、コマンド置換の実装

最近の開発状況をば。 コミット * e8e8867 Add command substitute * 3e7b5fe Moved internally reserved fd * a0c531f Improve pipeline and background * 7bb1db7 Improve background process and pipeline * 4d39b7f Replace FdSize to RawFd * 1cf7c73 I…

reddish-shell v0.11.0-beta3 開発進捗 | コマンドの実装とRust 1.56.0

今の進捗↓ コマンドの実行を実装 変数を利用できるようにした cmd1 && cmd2 と cmd1 || cmd2を実装 if/unless/while/until/for文を実装 コマンド履歴機能を有効化 Rust 1.56.0 / 2021 editionを使うようにした 最低限の機能を実装したので少しはシェルっぽく…

reddish-shell v0.11.0-beta2 開発進捗 | パーサーとレキサーの再実装完了

前回書いたとおりRustで再実装をしているのだけど、パーサーとレキサーの再実装ができた。 Rustでの再実装前と同等の機能までは実装できると思うが、%記法については実装を見送った。 github.com %記法の実装見送りについて Rubyっぽい記法を取り込みたいと…

reddish-shell v0.11.0? 開発進捗 | Rustで再実装

久しぶりにreddish-shellのアップデート(?)なのだけど、Rustで再実装している。 なんでまた…っと思われるかもしれないが、意図が明確にあってそれは高速化である。 前にブログに書いたかもしれない*1けど、今のreddishは果てしなく遅い。 原因はいくつかある…

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の追…

mrubyとGNU bisonでコマンドラインパーサーを作る

仰々しいタイトルだけど、reddish-shellのパーサー部分のメモ。 いまは覚えているけど、数カ月後の自分が覚えている自信がないのでメモっておこうと思った次第…。 ここで解説する内容は、現状の実装に即したもので数カ月後には変わっているかもしれない。 ま…