yhara.jp

Recent Posts

Shiika開発日記: LLVM 12から16に上げた

2023-08-15
Tech

ShiikaはずっとLLVM 12というわりと古いバージョンを使っていたのだけど、さすがにそろそろ上げるか〜ということで16に上げた。

一番でかい変更は、LLVM 15からOpaque pointer typeがデフォルトになったこと。つまりi8*%Object*みたいな「◯◯へのポインタ」型が、pointee typeがなくなって全部ただのptrになった。

これによってコード生成がシンプルになる…のはそうなのだが、変なLLVM IRを吐いてしまったときにclangでチェックされずに実行時にSEGVすることになるので、どうも不安な気持ちだ。ともあれとりあえず既存のテストが通る状態にはできたのでマージした。



Shiika進捗(2022年)

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というやつを参考にしました。
(more...)



mac vimproc コンパイル

2022-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.
(more...)


40%キーボードはいいぞ

2022-04-01
Tech

いいぞ。

40%キーボードとは?

キー数が通常の40%、つまり50個前後しかないキーボードのこと。

そんなので入力できるの?

できるぞ。QMK Firmwareというオープンソースのファームウェアに対応していればキー配置を極めて柔軟に設定できるので、例えばAを押したときに

(more...)

はんだ付けしたキースイッチを外す方法

2022-03-20
Tech

自作キーボードを何台も組み立てていると、だんだん気になってくるのがキースイッチのコストである。10個450円とかで買えるとはいえ、1台分だと数千円になってしまう。

ということで、もう使わなくなったキーボードからキースイッチを回収することを考える。

梅コース

一番安いのだとこういう道具がある。ばねの力で吸引力を生み出すタイプで、はんだごてを当てて、溶けた瞬間にポンと吸ってやる。

このタイプは前に触ったことがあるけど、キースイッチの場合はあまりうまくいかなかった。タイミングがシビアなのかな?

(more...)

Alloyさわってみたメモ

2022-03-18
Tech

ちょっと形式手法ツールAlloyを使ってみたい場面があったのでとりあえずインストールしてみた。昔ちょっとだけ触ったことあるんだけど。

Macだとbrew install alloyで入るので楽。

とりあえずチュートリアルやるか〜と思ったものの:

Visualizeすると「全部非表示になりました。Themeを設定してください」みたいなメッセージが表示される。うーん。仕様が変わったのかな。

(more...)

Posts

(more...)

Articles

(more...)

Category

Ads

About

About the author