- もともと上田がRustの練習にbashを作り始めた
- きれいに書けば「コードレベルでカスタマイズできるbashになるんじゃないか」と色気が出た
- ということで開発中
とりあえずルールがまだないけど、がんばって対応します。
- 軽快さ
- 堅牢さ
- コードの読みやすさ、手の入れやすさ
- 端末で使うシェルとして普段使いできるようにする(現在、自分で使って端末周りのコードを改善中)
- Rustはじめてさわったのが2022年1月という初心者がやっている。Rustなんもわからん。たすけて。
- バイナリのサイズは大きくなる見通しなので、シェルスクリプトでループをぶん回す用途には向かない。
- 今のところ、本業で疲れたときの逃避行動でコードを書いているので、コード内にコメントがないです。
だんだんbashに近づいてくるはず。現在のインタプリタとしての機能は、test/test.bashを見ると分かる。
- -d: output debug information
- bashの各要素を表す構造体と評価方法、パース方法を
elems_hoge.rs
に実装- パースにはパーサコンビネータを自分でゴリゴリ書いている。
- なにか抽象化しているようなものは
abst_hoge.rs
に実装しているが議論の余地あり - 端末とのやりとりを
term.rs
に実装(かなり素朴で無駄の多い実装。誰か助けて!)
- 3条項BSD
- 各外部クレートのライセンス等は、いまのところとりまとめてません。