public
Description: This book on Rubinius internals is a work in progress. Probably there will be initial push after couple of chapters finished. If I give damn up I will delete this repository. So as long as you can see it...
Homepage: http://rubini.us
Clone URL: git://github.com/michaelklishin/rubinius-book.git
Search Repo:
Updated TOC.
Michael S. Klishin (author)
Sat Mar 29 17:50:09 -0700 2008
commit  8010b2e2ea743d65dc9a0060adcce824137644b4
tree    271473c727e9140562de510a7e49b61eece83e7e
parent  ca7d295467331f42fe76dff20aea1db0662802d2
...
10
11
12
 
 
 
 
 
 
13
14
15
 
16
17
18
...
28
29
30
 
31
32
33
...
46
47
48
 
49
50
51
52
 
 
 
 
 
 
 
 
53
54
 
 
 
55
56
 
 
 
57
58
 
 
 
59
60
61
 
 
62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
64
65
...
76
77
78
 
 
 
 
 
 
 
 
 
79
80
81
...
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
...
35
36
37
38
39
40
41
...
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
 
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
...
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
0
@@ -10,9 +10,16 @@ h2. Ideas behind Rubinius.
0
 
0
 h2. Virtual machine overview.
0
 
0
+ * Intro.
0
+ * Core and kernel.
0
+ * Ruby side of things.
0
+ * C/C++ side of things.
0
+ * Outro.
0
+
0
 h2. Compiled methods.
0
 
0
  * What are compiled methods?
0
+ * Instruction pointer.
0
  * Literals tuple/frame.
0
  * Temporary tuple/frame.
0
  * Instructions and OptCodes.
0
@@ -28,6 +35,7 @@ h2. Compiled methods.
0
 
0
 h2. There's spaghetti on my stack!
0
 
0
+ * Is Rubinius stackless?
0
  * What is context?
0
  * Types of contexts.
0
  * How method contexts are created.
0
@@ -46,20 +54,55 @@ h2. Primitives and FFI.
0
  * What are primitives.
0
  * What is Foreign functions interface.
0
  * How FFI is organized.
0
+ * FFI and external libraries.
0
  * Writing a simple extension with FFI.
0
 
0
 h2. Object representation.
0
 
0
+ * How Ruby objects are represented in the VM.
0
+ * Fields.
0
+ * Flags.
0
+ * Manipulation.
0
+ * Freezing of objects.
0
+ * Tainting of objects.
0
+ * OOP foundations.
0
+
0
 h2. Object memory.
0
 
0
+ * What object memory is?
0
+ * Why we need such abstraction?
0
+
0
 h2. CPU abstraction.
0
 
0
+ * What is CPU abstraction anyway.
0
+ * Registers.
0
+
0
 h2. Exceptions.
0
 
0
+ * Exception handling issues.
0
+ * How exceptions are handled in Rubinius.
0
+
0
 h2. Rubinius debugger.
0
 
0
-h2. Compiler.
0
+ * Using the debugger.
0
+ * What sets up Rubinius debugger.
0
 
0
+h2. MSpec and tools.
0
+
0
+ * How MSpec was born.
0
+ * MSpec and RSpec.
0
+ * Basic usage.
0
+ * Runners.
0
+ * Continous integartion.
0
+ * Tags.
0
+ * How-to write a spec.
0
+
0
+h2. New Ruby types in Rubinius.
0
+
0
+ * Tuple.
0
+ * Actor.
0
+ * VMActor.
0
+
0
 h2. VM intercommunication.
0
 
0
  * Why VM intercommunication?
0
@@ -76,6 +119,15 @@ h2. Garbage collection.
0
 
0
 h2. Parser.
0
 
0
+h2. Compiler.
0
+
0
+ * Overview.
0
+ * How compiler is organized.
0
+ * How compilation works in details.
0
+ * Compiler plugins.
0
+ * Decompilation.
0
+ * Description of .rbc format.
0
+
0
 h2. mod_rubinius.
0
 
0
 h2. Appendix A: Repository organization.

Comments

  • dongbin Tue May 13 20:53:46 -0700 2008

    Is this book going on?

  • michaelklishin Fri May 16 07:26:26 -0700 2008

    @dongbin:
    I am deep into merb before 1.0. Then I’ll work on this. I need to finish dragon book and GC book before I really start catching up on what’s been happening in Rubinius space last month.
    But yeah, I spend some time on what will make it into this little book.