yhara.jp

Recent Posts

LLVM本体にデバッグログを入れる

2021-10-01
Tech

LLVMのエラーメッセージはあまり親切でない。Rustの異常な親切さに慣れてきたのでそう思うのかもしれないが。

例えばllvm-disの出したエラーがこれ:

Assertion failed: (InitVal->getType() == getValueType() && "Initializer type must match GlobalVariable type"), function setInitializer, file /Users/yhara/research/llvm-12.0.1.src/lib/IR/Globals.cpp, line 405.

型が違うことはなんとか分かるが、せめて何と何だったのかくらいは教えてくれないとデバッグのしようがない。

(more...)

LLVMの特定のツールだけビルドする

2021-10-01
Tech

LLVMのフルビルドは長い。とても長い。

こういうことがあったのでbcをデコードするツール(llvm-dis)だけ自前ビルドしたかった。

結論からいうとこれでいけた。

githubのreleasesから.src.zipを取ってきて解凍
(more...)



2021年に使うSnipMate

2021-05-31
Tech

今までいわゆるスニペット系のvimプラグインは使わずに来たのだが、Rustを書くようになって

  • Default::default()とタイプするのが面倒
  • collect::<Vec<_>>とタイプするのが面倒
  • use std::collection::HashMap;とタイプするのが面倒

…のように、スニペットの必要性が分かるようになった。

どのようなプラグインがあるかは以下がとても参考になった。

(more...)

処理系Slackのミートアップに参加しました

2021-05-29
Tech

処理系Slackで定期ミートアップをやろうという話になったので、せっかくだからShiikaについて相談したいことを話してみた。以下は発表資料。

Shiikaとは

  • 雑に書ける静的型付け言語がほしい
  • 既存の静的言語は「性能」とか「ローレベル」にチューニングされているが、それらを捨ててLL的な方向に振る
  • Ruby的な書きやすさ+静的型チェック
  • 動的言語の楽しさとは別に、型からデザインする楽しさというのがある
(more...)

ALETH42を組み立てた

2021-05-09
Tech

ALETH42を組み立てた。キー数が少ないのでキーマップ調整に手間取ったけど、まあまあいい感じになってきた。今は自宅で仕事するときに使っている。

↑はじめての#KEEB_PD。

発端

もともとは分割キーボードにしか興味がなかったのだが、nillpoさんのKUMOキーボード(この3枚目)を見てrow-staggeredな一体型のよさに目覚めてしまったのだ。とはいえKUMOはもう手に入らないので諦めていたところ、タイミングよくALETH42が登場して、作ってみることにした。

(more...)

clangのwarning: overriding the module target triple

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

Ruby GUIライブラリ 2021

2021-04-10
Tech

自作のRubyスクリプトに簡単なGUIを付けたくて少し調査してみた。

shoes3, shoes4, fxruby, tkあたりを少し見てみたが、2021年現在ではgtk3 gemを使うのが一番楽そう。なんといってもインストールが簡単。

インストール

$ gem install gtk3
(more...)

MacのサービスでRubyスクリプトを動かす

2021-04-10
Tech

Macの「サービス」からRubyスクリプトを起動する手順。

まず以下を参考に、Automator.appを起動し、「シェルスクリプトを実行」を登録する。

入力の引き渡し方法は「引数として」を選択。

シェルスクリプト部分を以下のように変更。

(more...)

Posts

(more...)

Articles

(more...)

Category

Ads

About

About the author