little about language implementation (like me) . • The goal of this talk is: After you go home today, you start to open ruby source code file at glance. զઆ໘ non-C progammers
dark, deep forest for beginners. • You had better to have maps and a compass for your exploration. • Let’t start to walk. The forest hides many sweet fruits, and beautiful flowers. Rubyతྛੋਂ.ཁᅷࢦೆ.
Get a set of Ruby source • Put a first book in C-language beside of you (ask your friends or Google about good book.) > git clone https://github.com/ruby/ruby ἥ্ۺࢠ: ಘ౸Ruby SourceCode
klass RBasic VALUE RArray flags klass RBasic integer value Flags RObject built-in Object FIXNUM_FLAG : 1 simple ruby value RObject numiv ivptr VALUE flags klass RBasic and RRegexp etc… built-in objects and Symbol ect… Simple values
Aoki • Original is written in Japanese, and is translated into English. All contents are available at http://ruby-hacking- guide.github.io/ • Talking about very details on Ruby source code and implementation. • about Ruby ver. 1.7.3… old, but Very Very Useful!! Ṝॻੋతࣕීวత
making a method simple by cutting not essential code off • understanding object structure before. • and many other wisdoms • It was written for C-programmers. But non C-programmer can learn Basic C essence for reading Ruby Implementation. Ṝॻڭዎᒬ㣛SouceCode
it is easy to find where a method is defined. What Hash#to_a do…? 'PSFYBNQMF JGPOFEBZ*TUBSUUPXPOEFSJOH BOEDBOOPUTMFFQXFMM See “hash.c”, Of course. and GoodNight.
\ 7"-6&BSZ ! BSZSC@BSZ@OFX@DBQB 3)"4)@4*;& IBTI SC@IBTI@GPSFBDI IBTI UP@B@J BSZ 0#+@*/'&$5 BSZ IBTI ! SFUVSOBSZ ^ SC@EFpOF@NFUIPE SC@D)BTI UP@B SC@IBTI@UP@B klass method_name function init arg function name is put on the head of line to search easily. make new array with hash size convert hash’s each pair to array Macro often defined in ***.h. but I can imagine how work from name…