2023-08-15
TechShiikaはずっとLLVM 12というわりと古いバージョンを使っていたのだけど、さすがにそろそろ上げるか〜ということで16に上げた。
一番でかい変更は、LLVM 15からOpaque pointer typeがデフォルトになったこと。つまりi8*
や%Object*
みたいな「◯◯へのポインタ」型が、pointee typeがなくなって全部ただのptr
になった。
これによってコード生成がシンプルになる…のはそうなのだが、変なLLVM IRを吐いてしまったときにclangでチェックされずに実行時にSEGVすることになるので、どうも不安な気持ちだ。ともあれとりあえず既存のテストが通る状態にはできたのでマージした。
2022-12-31
Techこれ。2022年中には完成させたいと思ってたので間に合ってよかった。
↑演奏動画。
先に言っておくと霞襲の組み立てはなにも難しくないです(僕が無駄に手間取っただけ)
2月
2022-12-25
Techこんばんわ。本記事は言語実装のカレンダー | Advent Calendar 2022 - Qiitaの24日目の記事です。
Shiikaは私が作っているRuby風の文法をもつ静的型付け言語です。静的言語はだいたい性能を重視した設計になっていることが多くて、動的言語は書きやすさを重視した設計が多いのですが、「静的だけど書きやすさ重視の設計」にすることで、静的なエラーチェックと書きやすさを両立したいと考えています。「Rubyっぽい手触りの静的言語」を目指しています。
2022年の主な進捗
- パターンマッチ
- enumに対し、
match x when Some(y) ...
とかでパターンマッチできるようになりました。これがないと始まらないよね。
- Module
- RubyのModule(Rustでいうとtraitみたいな)を実装しました。実現方法はSwiftのwitness tableというやつを参考にしました。
2022-05-27
TechI got this error while compiling Shiika.
Compiling llvm-sys v120.2.4
error: No suitable version of LLVM was found system-wide or pointed
to by LLVM_SYS_120_PREFIX.
llvm-sys checks the version in its build.rs
. On my current environment, LLVM_SYS_120_PREFIX
is:
2022-04-24
Tech2022-04-04
Tech最新のvimprocをmacでコンパイルしようとしたらエラーになったのでメモ
/Users/yhara/.vim/bundle/vimproc % make -B
/Library/Developer/CommandLineTools/usr/bin/make -f make_mac.mak
clang -O2 -W -Wall -Wno-unused -Wno-unused-parameter -bundle -fPIC -o lib/vimproc_mac.so src/proc.c
src/proc.c:10:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^~~~~~~~~
1 error generated.
2022-04-03
TechたとえばゲームプログラミングでEnemyとしてスライムとドラゴンがいて…みたいなとき、Rubyなら継承で実装しますよね。
class Enemy
attr_accessor :hp # 体力
end
class Slime < Enemy
end
2022-04-01
Techいいぞ。
40%キーボードとは?
キー数が通常の40%、つまり50個前後しかないキーボードのこと。
そんなので入力できるの?
できるぞ。QMK Firmwareというオープンソースのファームウェアに対応していればキー配置を極めて柔軟に設定できるので、例えばAを押したときに
2022-03-20
Tech自作キーボードを何台も組み立てていると、だんだん気になってくるのがキースイッチのコストである。10個450円とかで買えるとはいえ、1台分だと数千円になってしまう。
ということで、もう使わなくなったキーボードからキースイッチを回収することを考える。
梅コース
一番安いのだとこういう道具がある。ばねの力で吸引力を生み出すタイプで、はんだごてを当てて、溶けた瞬間にポンと吸ってやる。
このタイプは前に触ったことがあるけど、キースイッチの場合はあまりうまくいかなかった。タイミングがシビアなのかな?
2022-03-18
Techちょっと形式手法ツールAlloyを使ってみたい場面があったのでとりあえずインストールしてみた。昔ちょっとだけ触ったことあるんだけど。
Macだとbrew install alloy
で入るので楽。
とりあえずチュートリアルやるか〜と思ったものの:
Visualizeすると「全部非表示になりました。Themeを設定してください」みたいなメッセージが表示される。うーん。仕様が変わったのかな。