Browse files

Made rspec a requirement of the build problem. Updated README and mov…

…ed compile instructions to INSTALL.
  • Loading branch information...
1 parent fd8993c commit c3f12a3ba72f0a8a6684d0a5a47f1fc5bda06595 @brixen brixen committed Feb 24, 2007
Showing with 63 additions and 79 deletions.
  1. +38 −0 INSTALL
  2. +19 −71 README
  3. +6 −8 Rakefile
View
38 INSTALL
@@ -0,0 +1,38 @@
+1. Getting the source
+
+The source code is available from a Subversion repository. Ensure you have the
+svn command available and check out the source:
+
+ svn co http://code.fallingsnow.net/svn/rubinius/trunk rubinius
+
+2. Requirements
+
+Currently Rubinius can be built on UNIX-like systems, such as Linux and Mac OS X.
+To build and run Rubinius (but not do development), ensure you have the following
+dependencies installed:
+
+ * Ruby gems
+ * rake gem
+ * rspec gem (rspec.rubyforge.org)
+ * rubyinline gem
+ * ruby2ruby gem
+ * glib2
+ * pkg-config (or pkgconfig on OS X pkgconfig.darwinports.org)
+ * ruby 1.8.x
+ * gcc 4.x (version 3.x will not work)
+ * zip and unzip commands
+ * sydparse gem. You *must* get this from the Rubinius source directory
+ /externals/syd-parser
+
+3. Compiling Rubinius
+
+You must ensure that you are using the sydparse gem provided with the Rubinius source.
+Type gem list sydparse to see what sydparse gems are installed. Type rake build:syd
+to build the included sydparse gem. The gem will be in externals/syd-parser/pkg/.
+Use the gem command to install it.
+
+If you are not doing any development with Rubinius, you can compile just the C code
+portions. Use the command: rake build
+
+If you are doing development, there are several convenience compile commands. To get
+a list of these, use the command rake -T build.
View
90 README
@@ -1,97 +1,45 @@
-WHAT IS RUBINIUS
+1. What is Rubinius
Rubinius is a next-generation virtual machine and compiler for Ruby.
Based loosely on the Smalltalk-80 'Blue Book' design, Rubinius will provide
a rich, high-performance environment for running Ruby code.
-COMPILING RUBINIUS
+2. Running Rubinius
-Currently Rubinius can be built on UNIX-like systems, such as Linux and MacOS.
-It requires gcc 4.x and glib2, though these dependencies are temporary.
-Additionally, you will need an installation of ruby 1.8.x, and the following
-as gems or libraries:
- * rake
- * rspec (if you want to run specs, currently works with 0.7.5)
-??: * ruby2ruby (also used in specs)
+Refer to the INSTALL file for instructions on getting and building Rubinius.
-Once these are installed, type: 'rake build:all' to compile Rubinius.
-This builds the current version of Rubinius, known as 'shotgun'.
-Use 'rake test' to run the tests.
-
-RUNNING RUBINIUS
-
-After running 'rake build:all', there will be a 'rubinius' binary in
-the 'shotgun' directory. This binary currently does not mimic the usual 'ruby'
-command-line args. To run a Ruby script, type:
-./shotgun/rubinius some_ruby_file.rb
-The command first compiles the script to an 'rbc' file, then uses Rubinius to execute it.
-
-BOOTSTRAPPING/DEVELOPING RUBINIUS
-
-Requires:
- * ParseTree [?]
- * sydparse (the version included, use 'rake build:syd' to obtain the gem)
- * zip (provided on pretty much all unix platforms these days)
-
-Use the local sydparse by building locally using the 'rake build:syd' command.
-The bootstrapping tasks will fail until you install the correct version of sydparse.
-
-Bootstrapping uses a command aptly called bin/obsolete.rcompile
-(obsolete because it makes use of the fragile sydparse).
-
-rake build:bootstrap build:core build:compiler
-rebuilds the three .rba files in runtime/ -- you don't need to do this
-until you start hacking the Ruby files in lib and kernel.
-
-rake build:dev is a shortcut for rebuilding shotgun, core and compiler
-(but not bootstrap as this is touched less often) if you are
-developing things.
-
-OBSOLETE STUFF
-
-Don't touch:
-./bin/shotgun
-(list to be completed)
-[evan: can we delete the cruft, please?]
-
-STATUS
+3. Status
Rubinius is under heavy development, and currently supports the basic Ruby
-classes and kernel methods. The codebase is written in a mixture of
+classes and kernel methods. The code base is written in a mixture of
ANSI C and Ruby; with more Ruby and less C as the project proceeds.
You should not run your mission-critical Rails apps under Rubinius yet.
-GOALS
+4. Goals
-* Thread safety. Rubinius intends to be thread-safe and embeddable.
- It does not currently meet this goal due to some components borrowed from
- the mainline Ruby interpreter.
+* 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.
-* Bring modern techiques to the Ruby runtime. Pluggable garbage collectors and
+* Bring modern techniques to the Ruby runtime. Pluggable garbage collectors and
code optimizers are possible examples.
-VOLUNTEERING TO HELP
+5. Volunteering to Help
-The Rubinius team welcomes contributions, bug reports, test cases, and monetary support.
-One possible way to help is:
-1. Add a test for a Ruby core method.
-2. Go to the appropriately-named file in the 'kernel' directory.
-3. Implement that method in Ruby.
-4. Type 'rake build:kernel' to make your change take effect.
-5. Run the tests until they pass. :)
-6. Create a patch with 'svn diff' and send it to the mailing list.
-The 'ri' command is a rich source of examples and test cases.
+The Rubinius team welcomes contributions, bug reports, test cases, and monetary
+support. One possible way to help is implement Ruby library classes. Visit
+http://rubini.us for documentation on how to begin hacking Rubinius.
-STRUCTURE
+6. Architecture
-Rubinius currently uses C to bootstrap the system.
-In the future, a limited dialect of Ruby called 'cuby' will be used to generate C.
-This is a time-honored technique, used by systems such as Squeak, Smalltalk, and
-Algol on the Burroughs systems (as seen in the movie 'Tron').
+Rubinius currently uses C to bootstrap the system. In the future, a limited dialect of
+Ruby called cuby/garnet will be used to generate C. This is a time-honored technique,
+used by systems such as Squeak, Smalltalk, and Algol on the Burroughs systems (as seen
+in the movie 'Tron').
For now, this code is hand-written, and can be found in the ./shotgun/lib directory.
This code was ported from a Ruby implementation found in the ./lib directory.
View
14 Rakefile
@@ -13,14 +13,16 @@ end
begin
require 'spec/rake/spectask'
rescue LoadError
- puts "Unable to load spec/rake/spectask, spec tasks are not available"
- no_spec = true
+ raise <<-EOM
+ Unable to load spec/rake/spectask. RSpec is a requirement to build Rubinius.
+ Please install RSpec before building (http://rspec.rubyforge.org).
+EOM
end
# require local rake libs
# doesn't do anything gracefully on load error (yet)
paths = Dir[ File.join(File.dirname(__FILE__), 'rake/*') ]
-require_files(paths) unless no_spec
+require_files(paths)
# By default, run all the specs and tests
task :default => :spec
@@ -30,7 +32,7 @@ task :spec do
Rake::Task['spec:all'].invoke rescue got_error = true
raise "Spec or test failures." if got_error
-end unless no_spec
+end
namespace :spec do
desc "Run all specs and tests."
@@ -52,8 +54,6 @@ namespace :spec do
end
end
- unless no_spec
-
desc "Run only specs but not any tests."
spec_targets = %w(language shotgun library core targets primitives)
@@ -79,8 +79,6 @@ namespace :spec do
desc "Generate a coverage report for the core specs."
GroupCoverageReport.new(:core)
end
-
- end
end
desc "Alias for test:all"

0 comments on commit c3f12a3

Please sign in to comment.