以下の内容はhttps://blog.ebihara99999.com/entry/2025/03/16/235820より取得しました。


Ruby のソースコードの proc\.c を読んだ

Ruby の朝刊 ruby trunk changes より github.com

を発見したので proc.c を読んでみる。大枠では ProclambdaBinding に関する実装がしていることが分かった。たしかに実行コンテキストを保持する必要があるので、同じソースで実装するのもわかる気がするという感じだったが、デバッガー動かしながら詳細を見ないときちんと理解できなさそうだったので、Rubyソースコードから build した。

$ sudo apt install -y build-essential libssl-dev libreadline-dev zlib1g-dev bison automake
$  autoreconf --install
$  ./configure --enable-debug-env CFLAGS="-O0 -g" 
$ make
$ echo 'p = Proc.new { |x| x + 1 }; p.call(1)' > test.rb
$  gdb --args ./ruby test.rb

としデバッグを始めることができた(WSL2 Ubuntu)。Mac だと make が LDFLAG のせいで失敗していたので、この辺ちゃんと設定しないといけないのだろう。

時間が来てしまったので、いったんこの辺で今日は終わり。




以上の内容はhttps://blog.ebihara99999.com/entry/2025/03/16/235820より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14