yhara.jp

Recent Posts

Hello Worldが動かなくなった

2025-12-16
Tech

これは言語実装 - Qiita Advent Calendar 2025 - Qiitaの16日目の記事です。

私はShiikaというRuby風文法の静的型付け言語を作っているのですが、今年はずっと非同期処理の対応をしていて大きな話題(新機能とか)がないため、日々のデバッグの様子を紹介しようと思います。

現象

開発中のブランチで、いつのまにかputs "Hello"が動かなくなっていました。

$ ./a.out
(more...)

ObsidianとLogseqのオーバーレイで、日誌をうまく扱う

2025-07-03
Tech

ObsidianLogseqはどちらもローカルMarkdownファイルを扱うツールなので、実は一つのリポジトリをObsidianとLogseqで同時管理することができる。

同時管理?

なぜそんなことをしたいかというと、僕の場合はこういう事情だ。

  1. 家ではメモの管理にObsidianを使っている。
  2. 仕事でも仕事メモの管理にObsidianを使っている。
  3. 仕事用PCでも、家庭メモを編集したい場合がある。
  4. Obsidianを2個起動すると操作がわずらわしい(というかそもそもできるのかも知らん)
(more...)

vimの環境を見直した

2025-05-02
Tech

久しぶりにvimプラグインをいろいろ見直してみた。

パッケージマネージャ

VundleからJetPackに移行。Vundleに特に不満があったわけではなく、たまには新しいのも試してみるかの精神。

JetPackは、プラグインのインストール時のUIの見栄えがよい。とりあえず当面使ってみる。

起動画面

(more...)

Shiika進捗(2024)

2024-12-24
Tech

このエントリは言語実装 - Qiita Advent Calendar 2024 - Qiitaの24日目の記事です。

Shiikaとは

Shiikaは私が作っている、Ruby風の文法をもつ静的型付け言語です。

昨年まででInteger/String/Arrayなどの基本的なところは実装したのですが、そのあとIO機能を実装するところで、これは先に並行性のサポートについてちゃんと考えておかないとなと気付き、今年はその作業をしていました。

(たとえば後から並行性のサポートを無理やり入れたため、Fileのreadとread_asyncが両方あって使い分けないといけない…みたいなことは避けたいなという話です。

(more...)

ファミコンで動くRubyをつくりました

2024-12-24
Tech

このエントリは言語実装 - Qiita Advent Calendar 2024 - Qiitaの10日目の記事です。

最近やってた「ファミコン上で動作するRuby」ですが、シンプルなゲームが実装できるとこまでできたのでいったんv0.1.0としました。

https://github.com/yhara/nesruby

ゲームは先日のRubyWorld Conference 2024の弊社ブースで展示していたものです。JSNESを使ってgithub pagesにもアップロードしておきました。

https://yhara.github.io/nesruby/

(more...)


mruby/ruby: mruby VMをRubyで実装してみた

2024-12-01
Tech

このエントリはmrubyファミリ (組み込み向け軽量Ruby) Advent Calendar 2024の1日目の記事です。

近年、mruby bytecodeを利用していろんな環境でRubyを動かす試みがみられます。ふつうRuby処理系を自分で実装するとすれば

ソースコードのパース→命令列への変換→VMでの実行

という3段階になるわけですが、mruby bytecodeを使えば前段はmrbcコマンドがやってくれるので、後段であるVM+ランタイムの実装だけでRubyプログラムを動かすことができ、だいぶ楽になります。

とはいえ…

(more...)

Rustのjiff crateを眺めてみた

2024-08-09
Tech

これ。

https://github.com/BurntSushi/jiff

Rustの日時ライブラリはchrono(とchrono-tz)が有名だが、新しく日時ライブラリを作った理由が

https://github.com/BurntSushi/jiff/blob/master/DESIGN.md

に詳しく書かれていて面白かった。

一番違うのはタイムゾーンデータの扱いで、jiffはOSがデータベースを持っていれば自動でそれを見て、なければバイナリに同梱したものを参照する。IANAのタイムゾーン情報は年に数回くらい更新されるそうなので、そのたびにバイナリを再コンパイルしてリリースし直すのは確かに筋が悪いかも。


DXOpal 1.6.0をリリースしました

2024-07-09
Tech

久しぶりにDXOpalに手を入れて1.6.0をリリースしました。

新機能

  • 音声再生時、.play(true)でループ再生するようになりました。
  • <div id="dxopal-loading">というタグがあるとき、画像や音声ファイルの読み込み状況をそこに表示するようにしました。読み込みが終わると消えます(display: none)。

使い方

こちらをどうぞ。


Shiikaの型推論

2023-12-03
Tech

このエントリは言語実装のカレンダー | Advent Calendar 2023 - Qiitaの2日目の記事です。前日の記事はabo_junghichiさんの9キロバイトのコードで関数型言語を実装 - 自作言語revappの理由 - 一人一党党でした。

Shiikaは私が作っている、Ruby風文法の静的型付け言語です。今日は10月に行った型推論周りの整理を解説します。

Shiikaの型推論

型推論が行われるのは以下の2つのケースです。

(more...)

Posts

(more...)

Articles

(more...)

Category

Ads

About

About the author