ruby0 4 原始碼分析之編譯

2021-08-16 21:47:27 字數 514 閱讀 7443

昨天讀ruby**,編譯不了,於是就隨便翻,從makefile檔案入手,先看最簡單的

version.o : version.c ruby.h defines.h \

version.h

開啟version.c**也少,

static value rb_version;

value rb_readonly_hook();

init_version()

show_version()

我加了個main,單獨編譯,居然報錯,搞了半天,發現是其中init_version()引用了其它的檔案,把這個函式注釋掉,就編譯成功了。

不知為什麼乙個常量搞這麼複雜。

編譯時,最大的問題就是dbm.c編譯不成功,說找不到dbm_open等函式,我依照網上的例子,單獨寫乙個用gdbm的程式,只是開啟,關閉,編譯時加上-lgdbm_compact等選項,居然能順利編譯,所以我就直接放棄了編譯ruby0.49的想法了。

畢竟我的目標是想讀其中的原始碼,實在編譯不了,也沒法。

Ruby原始碼分析

struct rbasic struct robject struct rclass 以前研究過jvm,再看看動態語言原理都差不多。和jvm一樣,其中存著兩個必須的東西,變數表 iv tbl 和方法表 m tbl 這裡的變數表應該是只包含類變數 我不確定 super表示父類。其中為什麼要包含乙個變數...

Ruby原始碼分析(struct)

2012 01 08 hhuai struct rbasic struct robject struct rclass 以前研究過jvm,再看看動態語言原理都差不多。和jvm一樣,其中存著兩個必須的東西,變數表 iv tbl 和方法表 m tbl 這裡的變數表應該是只包含類變數 我不確定 super...

ruby 0 49原始碼分析

今天想想,讀讀ruby0.49的原始碼。用c寫東西,那是太慢了。真要幹活,還是用perl或者ruby.現在時間充足,就相看看ruby0.49。收到了王亞剛寫的gcc原始碼分析的書,他的版本太高,感覺還是讀最古老的版本較划算。量太大了,這何年何月才能看完呢。wget tar zxvf ruby 0.4...