ruby0 49原始碼分析2

2021-09-11 06:41:13 字數 620 閱讀 8643

ruby0.49原始碼分析2

週末重新打造讀程式的環境。在臥室裡布置了兩台電腦,每台筆記本加個顯示器。

一台專門用於讀**。另一台,專門用於寫測試程式,並把上網功能去掉。最大限度的保持專注。

因為ruby中定義了資料結構,把資料結構的定義抄下來,然後貼在牆面上,就象警察破案一下,準備乙個大的工作板。發現證據就貼上去。

因為在電腦中,桌面太小,還是沒有牆面大。如果能有牆面大,就能顯示幾個檔案。

發現ruby0.49中,每個c檔案的結構類似,前面定義函式,再把函式註冊進去。

在讀字串中拼接的函式時,我也模仿作者用memcpy拼接字串,居然搞不來。如

char *s1="abc"

char *s2="1234"

用memcpy後,變成

"abc 1234 "

不知道為什麼中間多了乙個空格,當然我是在windows7下除錯的。

看到string.c中字串next函式,發現"9".next又變成"0"了,於是想寫測試**

a.rb檔案

print("9".next);

./ruby a.rb

居然執行不了。因為我編譯時曾經報過錯。看來,ruby這種大程式不太好除錯。

今天就讀**。

ruby 0 49原始碼分析

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

ruby0 49原始碼分析 array c

ruby0.49原始碼分析 array.c 今天讀ruby0.49,感覺讀 的速度越來越快了。大腦好象開竅了。先讀makefile,根據基編譯順序,從下向上讀。在array.c的上面定義了若干函式,在末尾把函式進行註冊。檔案末尾 有init string 函式 用rb define method 函...

ruby049原始碼分析 array c

fary entry ary,offset 是取陣列ary offset 的值,作者需要判斷下標是否在區間 0,ary.length 1 區間內,如果offset是負數,就把offset加上長度,這樣實現 a 1 指向陣列最後乙個元素的功能。因為 1 a.length 資料最後乙個元素的下標。如果下...