forked from rubinius/rubinius
/
manifest.txt
118 lines (75 loc) · 3.62 KB
/
manifest.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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
109
110
111
112
113
114
115
116
117
118
1. Manifest
The following are interesting directories in the Rubinius source tree along
with a brief description of the contents of each.
* benchmark/
All benchmarks live here. The yarv/ subdirectory is an import of the
benchmarks in the MRI 1.9 source. The rubinius/ subdirectory is not in any
way Rubinius-only, all those benchmarks were just written as part of this
project.
* bin/
The bin/rbx file is a link to vm/vm. Various utility programs like
bin/mspec are also here. When installing gems in the development
directory, gem bin files are placed here. For example, after running
`bin/rbx gem install rake`, you can run `bin/rbx -S rake` to run rake with
Rubinius.
* doc/
Documentation for Rubinius. More general documentation is in the top level
directory. More detailed documentation for the Rubinius virtual machine is
in the vm/ subdirectory.
* gems/
This is into which gems are installed in the development directory. If
Rubinius is installed, gems are installed into a different directory.
* kernel/
The Ruby core library. Classes such as Array, Hash, String, Range, etc.
The directory is divided into several subdirectories to accommodate
bootstrapping the VM and Ruby runtime environment. See the details below.
* kernel/bootstrap/
Minimal set of incomplete core classes that is used to load up the rest of
the system. Any code that is required to load the common/ subdirectory.
* kernel/common/
The next directory loaded after bootstrap/ while loading the Ruby runtime
environment. Mostly complete implementation of the core classes. Builds on
and/or overrides bootstrap/.
* kernel/platform/
Platform-dependent code wrappers that can then be used in other kernel
code, particularly functionality that is provided through the Rubinius
Foreign Function Interface (FFI).
* kernel/delta/
Some methods have proto-implementations to enable loading kernel/common.
Redefine these methods in kernel/delta to provide the complete
implementation. Also the place to put any code that needs to run after
kernel/common has completed loading.
* lib/
All Ruby standard libraries that are verified to work as well as any
Rubinius-specific standard libraries. Of special interest here are three
subdirectories:
* lib/bin/
Some utility programs such as lib/bin/compile.rb which is used to compile
files during the build process.
* lib/compiler/
This is the compiler (implemented completely in Ruby.)
* lib/ext/
C extensions that use Capi (Ruby C-API).
* mspec/
An import of the MSpec framework for running the RubySpecs.
* rakelib/
Contains all supporting rake files implementing the Rubinius build system.
* runtime/
Contains pre-compiled (i.e. built by running `rake build`) core library
files. There are subdirectories paralleling the subdirectories of kernel/.
In each subdirectory, a `.load_order.txt` file list the order in which the
VM loads the .rbc files.
* spec/
Spec files for Rubinius and import of a stable version of the RubySpecs
for the CI process. Except for spec/ruby/, the specs in the subdirectories
are Rubinius-specific.
* spec/ruby
Imported copy of RubySpecs that has been tagged for the CI process.
* vm/
All of the C++ code that implements the VM as well as the VM-based support
for basic Ruby classes.
* vm/builtin/
C++ classes that implement the VM-dependent parts of Ruby classes such as
Array, String, Regexp, etc.
* vm/external_libs/
Libraries required by Rubinius, bundled for convenience.