Skip to content

Commit

Permalink
Add license info and tweaks to README.
Browse files Browse the repository at this point in the history
  • Loading branch information
Brian Ford committed Dec 10, 2008
1 parent b08b45f commit 7f8477c
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 124 deletions.
104 changes: 1 addition & 103 deletions INSTALL
@@ -1,103 +1 @@
= Installation guide for Rubinius as of 10/2008

If you are having trouble with installation, the #rubinius IRC channel on
irc://irc.freenode.net will help.


== Getting the software and required libraries

There are a few things that you need in order to be able to build and run
Rubinius. Once you have installed the general requirements, install the Gems
needed and then any platform-specific requirements.


=== General requirements

* "GCC 4.x (both g++ and gcc)":http://gcc.gnu.org/
* "GNU Bison":http://www.gnu.org/software/bison/
* "Ruby version >= 1.8.4 (the Ruby language)":http://www.ruby-lang.org/
* "RubyGems (Ruby package manager)":http://www.rubygems.org/
* "Git (source control used by rubinius)":http://git.or.cz/
* "zlib compression library":http://www.zlib.net/

Most systems already use GNU Make as their default, but for
those using a BSD Make:

* "gmake (GNU Make)":http://savannah.gnu.org/projects/make/

Each package may have requirements of its own, of course.

If you want to avoid overriding your existing environment, you may want to
install everything under its own prefix (such as /usr/local) and to name
programs so they don't collide with your existing installation (such as naming
gmake 'gmake'). You can then adjust your PATH environment variable as needed
for rubinius development.


=== Requirements through RubyGems

* rake
* ParseTree

Rake may be obtained with the `gem install` command. See `gem help` and
http://www.rubygems.org for more information.


=== System-dependent requirements


==== FreeBSD, OpenBSD

* "libexecinfo (backtrace utilities)":http://www.freshports.org/devel/libexecinfo


==== Debian/Ubuntu family systems

For the build to succeed you will need these packages:

* ruby-dev
* libreadline5-dev
* zlib1g-dev


== Rubinius itself

You need to check Rubinius out through Git (which we just installed). The
invocation looks like this:

git clone git://github.com/evanphx/rubinius.git

For more information on Rubinius' best practices for git, see "using
git":http://rubinius.lighthouseapp.com/projects/5089/using-git


== Compiling Rubinius

The C++ VM is compiled using Rake. Typically, it will be as simple as:

rake build


== Installing Rubinius

The C++ should not currently be installed separately.


== Running Rubinius

Once compiled, you can verify the VM works:

bin/rbx -v

Rubinius generally works like Ruby from the command-line. For example:

bin/rbx -e 'puts "Hello!"'


== Troubleshooting and platform-specific notes

Right now, the very best thing to do is to join the #rubinius IRC channel on
irc://irc.freenode.net. The forums here are an alternative method though the
response is probably not going to be as swift. We will try to collect tips
here, too.

See doc/getting_started.txt
44 changes: 23 additions & 21 deletions README
@@ -1,50 +1,52 @@
1. What is Rubinius

Rubinius is an execution environment for the Ruby programming language.
It is comprised of three major pieces: a compiler, a 'kernel' (otherwise
known as the Ruby Core Library), and a virtual machine.
The project's goal is to create a top-of-the-line Ruby implementation.
Rubinius is an execution environment for the Ruby programming language. It is
comprised of three major pieces: a compiler, a 'kernel' (otherwise known as
the Ruby Core Library), and a virtual machine. The project's goal is to create
a top-of-the-line Ruby implementation.

2. Running Rubinius
2. License

Refer to the INSTALL file for instructions on getting and building Rubinius.
Rubinius uses the BSD license. See LICENSE for details.

3. Status
3. Running Rubinius

See doc/getting_started.txt.

4. Status

Rubinius is under heavy development and currently supports the core Ruby
classes and kernel methods. The majority of the existing Ruby libraries
should run without modification. If your MRI 1.8.6-compatible code does not
run under Rubinius, please open a bug ticket.
classes and kernel methods. The majority of the existing Ruby libraries should
run without modification. If your MRI 1.8.6-compatible code does not run
under Rubinius, please open a bug ticket. See doc/howto/write_a_ticket.txt.

As Rubinius becomes more and more compatible with Ruby 1.8, the development
effort is shifting toward performance, rather than completeness.

4. Goals
5. Goals

* Thread safety. Rubinius intends to be thread-safe so you could embed more
than one interpreter in a single application. It does not currently meet
this goal due to some components borrowed from the mainline Ruby interpreter.

* Clean, readable code that is easy for users to understand and extend.

* Reliable, rock-solid code. Valgrind is used to help verify correctness.
* Reliable, rock-solid code. Valgrind is used to help verify correctness.

* Bring modern techniques to the Ruby runtime. Pluggable garbage collectors and
code optimizers are possible examples.

5. Volunteering to Help
6. Contributing

The Rubinius team welcomes contributions, bug reports, test cases, and monetary
support. One possible way to help is implement Ruby library classes. Visit
http://rubinius.lighthouseapp.com for documentation on how to begin hacking
Rubinius.
The Rubinius team welcomes contributions, bug reports, test cases, and
monetary support. One possible way to help is implement Ruby library classes.
See doc/contributing.txt to get started.

6. Architecture
7. Architecture

While most of the Rubinius features are implemented in Ruby, the VM itself
is written in C++. This is likely to continue to be the case in the coming
While most of the Rubinius features are implemented in Ruby, the VM itself is
written in C++. This is likely to continue to be the case in the coming
months, partly to ease the integration of LLVM into the Rubinius system.

The compiler, assembler, and bytecode generators are all written in Ruby, and
can be found under the ./lib/compiler directory.

0 comments on commit 7f8477c

Please sign in to comment.