2021-05-09
TechALETH42を組み立てた。キー数が少ないのでキーマップ調整に手間取ったけど、まあまあいい感じになってきた。今は自宅で仕事するときに使っている。
↑はじめての#KEEB_PD。
発端
もともとは分割キーボードにしか興味がなかったのだが、nillpoさんのKUMOキーボード(この3枚目)を見てrow-staggeredな一体型のよさに目覚めてしまったのだ。とはいえKUMOはもう手に入らないので諦めていたところ、タイミングよくALETH42が登場して、作ってみることにした。
2021-04-24
Techこの件について処理系Slackで相談したところ、いろいろなことが分かった。
背景
自作言語Shiikaに分割コンパイルを実装して、LLVM bitcode (.bcファイル) を2個作ってclangコマンドでリンクしようとしたところ、以下のような警告が出るようになった。
warning: overriding the module target triple with x86_64-apple-macosx10.15.0 [-Woverride-module]
1 warning generated.
2021-04-10
Tech自作のRubyスクリプトに簡単なGUIを付けたくて少し調査してみた。
shoes3, shoes4, fxruby, tkあたりを少し見てみたが、2021年現在ではgtk3 gemを使うのが一番楽そう。なんといってもインストールが簡単。
インストール
2021-04-10
TechMacの「サービス」からRubyスクリプトを起動する手順。
まず以下を参考に、Automator.appを起動し、「シェルスクリプトを実行」を登録する。
入力の引き渡し方法は「引数として」を選択。
シェルスクリプト部分を以下のように変更。
2021-04-09
Techqmkの環境構築をしてたら、tmuxが起動しなくなった。
/Users/yhara % tmux
[exited]
^[[?62;4c^[[ITERM2 3.3.12n%
brew upgradeを^Cで止めたりしたせいか…?と思ったが、ps aux | grep tmux
してみたら起動中のtmuxが一つあった。
killall tmux
で当該プロセスを止めたら無事起動できるようになった。(参考)
2021-02-28
TechRust + LLVMで自作プログラミング言語Shiikaを作っているのだが、開発中に遭遇するエラーには以下の種類がある。
- rustcがエラーを吐く(=.rsに問題がある)。
- rustcは通ったが、Shiikaのエラーが出る(=.skに問題があるorバグで問題があると誤判定している)。
- rustcは通ったが、llcがエラーを吐く(=.llの生成に問題がある)。
- llcが実行ファイルを生成したが、実行すると期待通りに動かない。
一番面倒なのはもちろん最後のケースだが、これもさらにいくつかの種類に分けられる。
- 期待通りに動かないが、最後まで実行はできる(=Shiikaで書いたプログラムに間違いがある)。
2021-02-13
Techtl;dr This worked for me (iTerm2 on Mac)
$ cargo --color always build | less -R 2>&1
Problem
When I use lv
(or bat
) to read the output of cargo build
, the output is not colored, even with --color always
(i.e. $ cargo --color always build |& lv
).
2021-01-26
TechShiikaのctx周りをリファクタリングしたので、何をやったかメモしておく。
元のコード
リファクタリングしたのはHirMakerContextという構造体である。こいつはASTからHIR(高レベル中間表現)を作る際に使うもので、もとはこういう定義だった。
2020-12-04
Techこのエントリは言語実装 Advent Calendar 2020の4日目のエントリです。昨日はmitsuchiさんのLLVM の Kaleidoscope を育てながら作るでした。
言語実装アドカレ、今年は全日埋まってるんですねえ。処理系Slackのおかげでしょうか?すごいなあ。
Shiikaは私が作っている、Ruby風の文法を持った静的型付けプログラミング言語です。Rubyのような手触りを保ちつつ、型をベースにしたプログラミングを楽しめる言語を目指しています。数年前から開発していて、昨年夏からはRust + LLVMによる処理系実装を始めました。
本記事では今年の主な成果を振り返ってみようと思います。
サンプルの追加
2020-12-02
Tech