Ruby1.7.3のソースコード行数を調べる

はてなブックマークに追加はてなブックマーク Yahoo!ブックマークに登録 ニフティクリップに追加 Livedoor クリップに追加 BuzzurlにブックマークBuzzurlにブックマーク Twitterに投稿  

Cygwin1.5にRuby1.7をソースからビルドして、コードリーディングを少しずつ進めていますが、今日はRuby1.7.3を実装しているCコードが何行あるのか調べてみた。
対象としたファイルは、拡張子がc, およびh(ヘッダーファイル)のもの。
以下のようなコードを書いた。


ソースコード行数を調べるスクリプト

path = "C:/cygwin/home/takafumi/src/ruby-rhg"
 
def count_line(path)
    if FileTest.directory?(path)
        file_nums = 0
        line_no = 0
        Dir.glob("#{path}/**/*.[ch]").each { |file|
            if File.file?(file)
                File.open(file, "r").each { |line|
                    line_no += 1    # ソース行数カウント
                }
            end
            puts file        # ファイル名表示
            file_nums += 1    # ファイル数のカウント
        }
    end
    puts "ファイル数:#{file_nums}"
    puts "ソース行数:#{line_no}"
end
 
count_line(path)


実行結果

C:/cygwin/home/takafumi/src/ruby-rhg/array.c
C:/cygwin/home/takafumi/src/ruby-rhg/bignum.c
C:/cygwin/home/takafumi/src/ruby-rhg/class.c
C:/cygwin/home/takafumi/src/ruby-rhg/compar.c
C:/cygwin/home/takafumi/src/ruby-rhg/config.h
C:/cygwin/home/takafumi/src/ruby-rhg/defines.h
C:/cygwin/home/takafumi/src/ruby-rhg/dir.c
C:/cygwin/home/takafumi/src/ruby-rhg/dln.c
C:/cygwin/home/takafumi/src/ruby-rhg/dln.h
C:/cygwin/home/takafumi/src/ruby-rhg/dmyext.c
C:/cygwin/home/takafumi/src/ruby-rhg/enum.c
C:/cygwin/home/takafumi/src/ruby-rhg/env.h
C:/cygwin/home/takafumi/src/ruby-rhg/error.c
C:/cygwin/home/takafumi/src/ruby-rhg/eval.c
C:/cygwin/home/takafumi/src/ruby-rhg/ext/curses/curses.c
C:/cygwin/home/takafumi/src/ruby-rhg/ext/dbm/dbm.c
C:/cygwin/home/takafumi/src/ruby-rhg/ext/digest/defs.h
C:/cygwin/home/takafumi/src/ruby-rhg/ext/digest/digest.c
C:/cygwin/home/takafumi/src/ruby-rhg/ext/digest/digest.h
C:/cygwin/home/takafumi/src/ruby-rhg/ext/digest/md5/md5.c
C:/cygwin/home/takafumi/src/ruby-rhg/ext/digest/md5/md5.h
C:/cygwin/home/takafumi/src/ruby-rhg/ext/digest/md5/md5init.c
C:/cygwin/home/takafumi/src/ruby-rhg/ext/digest/rmd160/rmd160.c
C:/cygwin/home/takafumi/src/ruby-rhg/ext/digest/rmd160/rmd160.h
・・・(途中略)
ファイル数:142
ソース行数:106353

ファイル数にて142個、行数は10万行オーバーになりました。
Rubyで書かれたライブラリは含んでいないので、やっぱり大きいですね。
重要な部分をかいつまんででないと、全部は読めそうもありません。


日時: 2009年12月18日 22:31
コメントを投稿






トラックバック

■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/518

この記事にトラックバックされる方は、参照先が分かるようにするために、「Ruby1.7.3のソースコード行数を調べる」へのリンクをお願いいたします。
以下のHTMLタグをトラックバック送信元ページ内に挿入して下さい。



※この記事へのリンクがない、また関連のないページからのトラックバックは反映されませんので、ご了承下さい。






あわせて読みたいブログパーツ
フィードメーター - Ruby勉強ルーム