2017-06-03: バイトとかColorizeとかEfeneとか
やったこと
バイトをした
穴を掘ったりする簡単なお仕事。
そろそろ人間の脳内状態遷移の限界を感じる。
Crystalのコンパイラのカラー出力がTTYかどうかを確認するようにした
Compiler: use Colorize.on_tty_only! by MakeNowJust · Pull Request #4499 · crystal-lang/crystal
これ。
なんか一週間くらい前に実装したのだけどPull Requestを出していなかった。
正直もうColorizeと関わりたくないレベルでこれに消耗させられてるのだけど、自分がやらないと他にやる人がいないっぽいのでやらざるを得ないという。誰か〜、誰か氏〜。
String#underscoreの修正がマージされた
Fixed #4278: String#underscore with digit by MakeNowJust · Pull Request #4280 · crystal-lang/crystal
寝てる間にマージされてた。
ボクが放置してたのが全部悪いです。
make clean_crystalが追加された
Makefile: add 'clean_crystal' target by MakeNowJust · Pull Request #4268 · crystal-lang/crystal
同じく寝てる間に。
$ make clean
するとC++のビルドしたのも消えちゃうけど、それは残しておきたいよね、っていうときのために、
$ make clean_crystal
を追加した。これを使うと、コンパイラを弄ってて途中でコンパイラが壊れたりしたときに役に立つ。
EfeneでQuineを書いた
EfeneというBEAM VM(ErlangのVM)で動くプログラミング言語がある。構文が人間に優しい感じになった、AltErlangという感じ。Erlangが既に独自の世界観を持っているのに、その上にさらに独自の世界観を作り上げているElixirとは違って、悪魔で読みやすいErlangという感じがして良い。Erlangが分からないと書けないのは同じなんだけど、それはJavaScriptに対するCoffeeScriptだって同じでしょう。そんな感じ。
Homebrewで提供されてなかったのでrebar3でビルドした。
$ rebar3 compile
$ rebar3 escriptize
とすると、_build/default/bin/efeneが出来て、
$ ./_build/default/bin/efene beam quine.fn && escript quine.beam | diff quine.fn -
みたいな感じでコンパイル・実行できる。
Quineは敢えてErlangと同じ構成にした。まあ考えたくなかっただけでもある。
日記のslugをdiaryにしていきたい
そうしないと日記を書き出す前にslugを決めなきゃけなくなる。しんどい。