|
| 1 | +--- |
| 2 | +layout: default |
| 3 | +--- |
| 4 | + |
| 5 | +Translated by Vincent ISAMBART and Clifford Escobar CAOILE |
| 6 | + |
| 7 | +h1. Ruby Hacking Guide |
| 8 | + |
| 9 | +This is the home page of the project to translate into English the "Ruby |
| 10 | +Hacking Guide":http://i.loveruby.net/ja/rhg/book/. The RHG is a book |
| 11 | +that explains how the ruby interpreter (the official |
| 12 | +C implementation of the "Ruby language":http://www.ruby-lang.org/) works internally. |
| 13 | + |
| 14 | +To fully understand it, you need a good knowledge of C and Ruby. The |
| 15 | +original book includes a Ruby tutorial (chapter 1), but it has not |
| 16 | +been translated yet, and we think there are more important chapters to |
| 17 | +translate first. So if you have not done it yet, you should read a |
| 18 | +book like the "Pickaxe":http://www.rubycentral.com/book/ first. |
| 19 | + |
| 20 | +Please note that this book was based on the source code of ruby 1.7.3 |
| 21 | +so there are a few small differences to the current version of |
| 22 | +ruby. However, these differences may make the source code simpler to |
| 23 | +understand and the Ruby Hacking Guide is a good starting point before |
| 24 | +looking into the ruby source code. The version of the source code used |
| 25 | +can be downloaded here: http://i.loveruby.net/ja/rhg/ar/ruby-rhg.tar.gz. |
| 26 | + |
| 27 | +Many thanks to "RubyForge":http://rubyforge.org for hosting us and to |
| 28 | +Minero AOKI for letting us translate his work. |
| 29 | + |
| 30 | +h2. Help us! |
| 31 | + |
| 32 | +This translation is done during our free time, do not expect too |
| 33 | +much. The book is quite big (more than 500 pages) so we need help to |
| 34 | +translate it. |
| 35 | + |
| 36 | +People who are good at Ruby, C and Japanese or English are |
| 37 | +needed. Those good at Japanese (native Japanese speakers are of course |
| 38 | +welcome) can help translate and those good at English (preferably |
| 39 | +native speakers) can help correct mistakes, and rewrite badly written |
| 40 | +parts... Knowing Ruby and C well is really a requirement because it |
| 41 | +helps avoiding many mistranslations and misinterpretations. |
| 42 | + |
| 43 | +People good at making diagrams would also be helpful because there is |
| 44 | +quite a lot to redo and translators would rather spend their time |
| 45 | +translating instead of making diagrams. |
| 46 | + |
| 47 | +So if you want to help us, join the "rhg-discussion mailing |
| 48 | +list":http://rubyforge.org/mailman/listinfo/rhg-discussion and |
| 49 | +introduce yourself (who you are, your skills, how much free time you |
| 50 | +have). You can of course just join the mailing list to see what's |
| 51 | +going on. And do not hesitate to ask questions! |
| 52 | + |
| 53 | +The preferred way to propose corrections/improvements is to send a |
| 54 | +patch (attached to the mail, not just in the body of the message) on |
| 55 | +the mailing list. The patch should be done against the text files in the |
| 56 | +SVN repository (http://rubyforge.org/scm/?group_id=1387). |
| 57 | + |
| 58 | +The RubyForge project page is http://rubyforge.org/projects/rhg. |
| 59 | + |
| 60 | +h2. Table of contents |
| 61 | + |
| 62 | +Some chapters are previews. It means they have not been fully reviewed, |
| 63 | +some diagrams may be missing and some sentences may be a little |
| 64 | +rough. But it also means they are in open review, so do not hesitate |
| 65 | +to post suggestions on the mailing list. |
| 66 | + |
| 67 | +* Preface |
| 68 | +* Introduction |
| 69 | + |
| 70 | +h3. Part 1: Objects |
| 71 | + |
| 72 | +* Chapter 1: Ruby language minimum |
| 73 | +* "Chapter 2: Objects":chapter02.html |
| 74 | +* "Chapter 3: Names and name tables":chapter03.html |
| 75 | +* "Chapter 4: Classes and modules":chapter04.html |
| 76 | +* Chapter 5: Garbage collection |
| 77 | +* "Chapter 6: Variables and constants":chapter06.html |
| 78 | +* Chapter 7: Security |
| 79 | + |
| 80 | +h3. Part 2: Syntax analysis |
| 81 | + |
| 82 | +* Chapter 8: Ruby language details |
| 83 | +* Chapter 9: yacc crash course |
| 84 | +* Chapter 10: Parser |
| 85 | +* Chapter 11: Context-dependent scanner |
| 86 | +* Chapter 12: Syntax tree construction |
| 87 | + |
| 88 | +h3. Part 3: Evaluation |
| 89 | + |
| 90 | +* Chapter 13: Structure of the evaluator |
| 91 | +* Chapter 14: Context |
| 92 | +* Chapter 15: Methods |
| 93 | +* Chapter 16: Blocks |
| 94 | +* Chapter 17: Dynamic evaluation |
| 95 | + |
| 96 | +h3. Part 4: Around the evaluator |
| 97 | + |
| 98 | +* Chapter 18: Loading |
| 99 | +* Chapter 19: Threads |
| 100 | + |
| 101 | +* Final chapter: Ruby's future |
| 102 | + |
0 commit comments