iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
自我挑戰組

C again系列 第 29

ruby_run_node

  • 分享至 

  • xImage
  •  

看過 parse.c 一路,只考慮執行一段最簡單的 Ruby code,跳過各種細節,知道 ruby_options 會產生 iseq,然後 ruby_run_node 會執行

static int
rb_main(int argc, char **argv)
{
    RUBY_INIT_STACK;
    ruby_init();
    return ruby_run_node(ruby_options(argc, argv));
}

Ruby 有數種 scope,需要依規則 lookup "symbol"。這些資訊應該在 parse 的結果中有記下來,需要找到是存在哪裡。另外在執行過程中有操作的規則,可以找到正確的內容。

與學習 Ruby 不同,這些結構不太出現在 Ruby 的說明文件中,要繼續看 YARV 程式碼,尋找對應的 C struct 與操作


上一篇
整理 parse AST 與 compile iseq 的流程
下一篇
YARV instructions
系列文
C again30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言