分享我修改後的一些源碼

分享我修改後的一些源碼
我有時覺得現在的時代真好。有電腦可以用,有書可以讀。而且有那麼多的開源代碼可以供自己研究。我想,或許,這就是我們真正的天堂了。
我原來學習時,偏重於讀書,很少寫代碼,導致自己水平一直不高,現在我改變思路,以讀源碼爲主,以寫代碼爲輔助,再輔以之讀書,感覺水平在慢慢上升。因此,我把自己覺得好的代碼,就上傳上去,讓後來的人有一些幫助。
因爲有的人,可能沒想過讀源碼,因爲在win10下開發,你接觸不到代碼。
或者即使想過讀代碼,但你一開始去研究幾千萬行的代碼,那不把人淹死。
或者即使你找到了合適的代碼,但一個makefile文件就把你搞暈了。爲此,我想,讀源碼,還是有方法的。
我目前對三個代碼感興趣。
一、oz的grep源碼
代碼不多,1000行。但比較難啃。最好同時買一本《精通正則表達式》,先把書看懂,再讀代碼。
另外,不要改動makefile,直接進行編譯。
反正,我的目標是讀代碼,不是和makefile較勁。所以我讀源碼時,最多隻是修改makefile,如加個編譯選項,加個鏈接庫。但不深入研究makefile。
二、gawk1.01源碼
這個代碼較長,6000行左右。但regex.c的不用細看。關鍵awk相關的幾個程序。我對awk.y進行了修改,使之在命令行中的程序可以執行,就是
./gawk -f file.awk
這種格式不行,你要把awk命令直接寫在命令行上,如
./gawk '{print "okok"}'
因爲那個awk.y還有移進歸約衝突。我還沒搞定。
總之,從awk1.c慢慢看起。
三、ruby0.49源碼
這個代碼我改了若干處,加個頭文件呀,把以前可變參數函數的調用方法修改呀,甚至64位操作系統和32位操作系統中指針值不同等等,
到現在,這個程序也跑不起來。除了
./ruby -v
較簡單,可以執行,而像
./ruby -e 'print("ok")'
就報core dump之類錯誤。
這個makefile我也修改了。我想哪怕一行行gdb,我也要把這個程序調通。實在不行,直接給matz寫封信,請他幫助在ubuntu下調通。
另外,爲了少報些錯,我把gcc進行了降級,目前我使用的是ubuntu18.04
,gcc-4.8,至於bison,make版本就無所謂了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章