@ledsun blog

無味の味は佳境に入らざればすなわち知れず

2026-01-01から1年間の記事一覧

bootstrap(セルフホスト)時のspinel_codegen.rb実行時のGC回数増

bootstrap(セルフホスト)時のspinel_codegen.rb実行時間の変わり方 - @ledsun blog で、Nodeテーブルを初期化するクラスを抽出すると、実効時間が160秒 => 344秒と伸びることが分かりました。 この原因を探りたいです。 まず、stackprof の CPU profile で…

bootstrap(セルフホスト)時のspinel_codegen.rb実行時間の変わり方

spinel_codegen.rbのbootstrap(セルフホスト)時の性能評価手順を整理 - @ledsun blog をつかってどのくらい性能が変わるかを試しに測ってみます。 refactor(codegen): extract node table loader · ledsun/spinel@d94f5d6 · GitHub のようにNodeテーブルを…

spinel_codegen.rbのbootstrap(セルフホスト)時の性能評価手順を整理

ビルド済みのspinelコマンドの実効時間の話ではありません。 spinelコマンドを作成するためにspinel_codegen.rbを実行する時間を計測します。 背景 [codex] Extract NodeStore from codegen by ledsun · Pull Request #284 · matz/spinel · GitHub にてリフ…

Ubuntu + llama.cppでローカルLLM環境構築メモ

WSL

llama.cpp のビルド 依存ツールインストール sudo apt update sudo apt install -y build-essential cmake git ソース取得 git clone https://github.com/ggml-org/llama.cpp cd llama.cpp ビルド(CMake) cmake -B build cmake --build build --config Rel…

WSLのrbenv経由のRubyの起動を速くする

WSL

結論 mkdir -p ~/.local/bin ln -sf /usr/bin/readlink ~/.local/bin/greadlink fish_add_path -p ~/.local/bin 問題 https://github.com/matz/spinel のテストをローカルで実行すると、229回 Ruby が実行されます。 Ruby の起動に時間が掛かると、それだけ…

RubyKaigi 2026

0日目 移動トラブル 今回のRubyKaigiは、かなり印象的なスタートになりました。 もともとは羽田空港から函館空港へ飛行機で移動する予定でした。 管制機器のトラブルによって、飛行機の出発が危ぶまれる状況になったのです。 飛行機は諦めて新幹線で移動する…

WSL2のディスクサイズを縮小する手順

WSL

WSL2のディスク(.vhdx)は動的拡張です。使っていると段々大きくなっていきます。 WSL内のファイル削除しても、Windowsからは空き領域が検知できずvhdxファイルの物理サイズは縮まりません。 exportで実データをtarに書き出す。importで再作成すると、未使…

Gem.ruby_api_versionについて

ruby.wasmの怪現象 - @ledsun blog についてrubygemsにissueつくるかー、と思って調べていたら・・・迷宮入りしました。 現状をメモしておきます。 背景 ruby.wasm では、Ruby VM 初期化直後に次のような状態で返ることがあります。 Gem は定義されている ru…

Fiber initialization failure on WASI/ruby.wasm raises TypeError instead of FiberError

Rubyの不具合を再現するために - @ledsun blog でエラーの取り方を工夫しようと思いましたが、結局諦めました。 仕方が無いので、現状のややこしい再現コードのままバグ報告しようと思います。 というわけで英語で書いた説明の下書きです。 十分にややこしい…

Rubyの不具合を再現するために

ruby.wasmのデバッグ - @ledsun blog で見つけたRuby側の不具合を再現するコードを作成中です。 まず、Rubyの初期化に失敗するコミットを指定してruby.wasmをビルドします。 build_manifest.jsonを作ります。 {"ruby_revisions":{"head":"4f7dfbe58ee2915b07…

fish shell 4を入れる

Release fish 4.6.0 · fish-shell/fish-shell · GitHub がリリースされています。 手元の環境を見ると ►fish --version fish, version 3.7.1 随分古いです。 WSLにfish shellをいれる - @ledsun blogみると、aptのリポジトリに3系を指定していました。 fish …

ruby.wasmのデバッグ

ruby.wasmでテストが落ちる現象を発見しIssueを報告しました。 test:unit fails with UnhandledPromiseRejection "Symbol(kExitCode)" on Node.js 20/22/24 · Issue #628 · ruby/ruby.wasm · GitHub それから、Codex CLIとデバッグをしました。 状況が複雑過…

ruby.wasmの怪現象

ruby.wasmでは、CRubyと同様にRubyのVMを初期化し、その上でRubyスクリプトを動かします。 CRubyでRubyのVMを初期化が完了すると定数Gemが定義されてかつrubygems.rbが読み込まれています。 Ruby WASM上でRuby VMを初期化すると、Gemは定義されているのに、r…

Ubuntuのrustupをsnapをやめる

AIエージェントが動くサンドボックスから、snapアプリケーションを動かすのは制約があるみたいです。 CUIアプリケーションのインストールにはsnapは使わない方が良さそうです。 rustをsanpで入れていたので、入れ直します。 アンインストール sudo snap remo…

調査中: ruby.wasm CIでのBundler standalone の Gem.extension_api_version 未定義問題

背景 ruby.wasmのCIのrake npm:ruby-head-wasm-wasip2:checkで次のエラーが発生しました。 undefined method `extension_api_version' for Gem:Module ログ: https://github.com/ruby/ruby.wasm/actions/runs/22755141423/job/65997955482#step:16:146 この…

Codex CLIにGitHub Actionsの失敗原因を解析してほしい

Codex CLIとGitHubを連携方法による GitHub Actionsのログ取得 に関する制約についてです。 はじめに Codex CLIとGitHubを連携させることで、CI/CDの状況確認やエラー解析などを自動化できます。 連携方法によって取得できる情報に違いがあります。 次の2つ…

direnvを使ってディレクトリ単位で環境変数を自動設定する

コーディングエージェントなどを使うことが増えました。 秘密情報をエージェントとリポジトリの組み合わせに応じて設定するのが面倒です。 統一的に管理する仕組みを取り入れようと思います。 今回の作戦ではdirenvを使って、ディレクトリごとに展開する環境…

WindowsのCopilot CLIでSerena MCPサーバーを設定する

CopilotとSerena Serenaを使うとコーディングエージェントは学んだ結果を保存できます。 保存先はプロジェクトディレクトリ配下の.serenaディレクトリです。 保存した結果を再利用して、コーディングエージェントのトークン消費量が抑えられるそうです。 Cop…

Codex CLIでPlaywright MCPサーバーを設定する

環境はWSL上のUbuntuです。 codex mcp add playwright -- npx @playwright/mcp@latest npx playwright install chrome 2つめのコマンドはroot権限が必要でした。 このあとcodexを起動すればMCPサーバーを認識するはずです。 私の場合は、一度詰まりました。 …

Codex CLI内でnpmコマンドを実行する

背景 Fix ESLint v10 RuleContext API removal (follow-up to #3972) by ledsun · Pull Request #3979 · jsx-eslint/eslint-plugin-react · GitHub を直そうとしています。 CI環境の設定がよくわかりません。 Codex CLIと相談しながら進めることにしました。…

ZedのPHP向け設定

Zedというエディタを試しています。 PHP | Zed Code Editor Documentation を参考にしてPHP Webアプリケーションをデバッグできるようにした記録です。 VSCodeでやっていたことの置き替えなので、PHP自体の設定は済んでいる前提です。 Intelephenseの設定 左…

コーヒー手焙煎

コーヒー手焙煎しています。 いまの手順を記録しておきます。 道具 Ecosero 自宅で簡単!コーヒー豆焙煎器 おうち時間を充実 常滑焼焙煎器 エコセロEcoseroAmazon 焙烙を使います。 チャフはそんなに飛びません。 ガスコンロで加熱します。 加熱中ずっと焙烙…

最新のコミットをGitHub CopilotでレビューするPowerShellスクリプト

VSCodeにはコミットをチャットに送る機能があります。 Visual Studioにはありません。 また、最新コミットは頻繁に指定するのでワンコマンドで実行きるようにスクリプトにしました。 $PSNativeCommandOutputEncoding = [System.Text.UTF8Encoding]::new() [C…

Node.jsでruby.wasmを動かす時にRubyスクリプトをどうやって読み込むか?

私はこんな関数を書きました。 async function requireRubyScript(vm, path) { vm.eval(await readFile(path, "utf-8")); } await requireRubyScript(vm, "calculator.rb");な風に使います。 これはデフォルトで欲しいですよね。 例えば vm.require("calcula…