Skip to content
This repository

Rubinius, the Ruby Environment

Fix handling of non ASCII values on ENV

If we set an environment variable with a non ASCII value and we set
Encoding.default_internal the program can crash.

Checking for ASCII values before we proceed to encode solves the
problem.

I don't like using a conditional in the spec, but if we are going to use
the env set by the user while running the spec suite we need to ignore
some of the values.
latest commit a3072f1069
Miguel Herranz IPGlider authored
Octocat-spinner-32 .bundle Added local bundle config to not update vendor/cache. October 15, 2013
Octocat-spinner-32 bin Removed rubygems override env vars when running bin/mspec. August 23, 2013
Octocat-spinner-32 kernel Fix handling of non ASCII values on ENV April 15, 2014
Octocat-spinner-32 library Unfsck bundled RubyGems. March 18, 2014
Octocat-spinner-32 mspec Updated MSpec source to 439b4fa1. October 21, 2013
Octocat-spinner-32 rakelib Fix incorrect comment March 18, 2014
Octocat-spinner-32 spec Fix handling of non ASCII values on ENV April 15, 2014
Octocat-spinner-32 tools Changed references from vm/external_libs to vendor. July 01, 2011
Octocat-spinner-32 vendor This is defined as 1 on Linux normally January 26, 2014
Octocat-spinner-32 vm Grab string length before copying strings April 05, 2014
Octocat-spinner-32 .autotest added RUBY env for autotest March 12, 2008
Octocat-spinner-32 .gdbinit Check CallFrames directly from their VM August 08, 2010
Octocat-spinner-32 .gitignore Cleanup .gitignore file February 22, 2014
Octocat-spinner-32 .travis.yml Set branches to run Travis. November 23, 2013
Octocat-spinner-32 AUTHORS Added self to AUTHORS October 29, 2013
Octocat-spinner-32 CONTRIBUTING Add note about config logs March 17, 2014
Octocat-spinner-32 Changelog Updated Changelog. March 10, 2014
Octocat-spinner-32 Gemfile Updated Gemfile. March 09, 2014
Octocat-spinner-32 LICENSE Mention contributors in the LICENSE file. February 05, 2014
Octocat-spinner-32 README $SAFE isn't supported on Rbx either. January 14, 2014
Octocat-spinner-32 Rakefile Ignore rake clean if not configured. February 07, 2014
Octocat-spinner-32 SECURITY Add basic instructions for security reports July 08, 2013
Octocat-spinner-32 THANKS THANKS copy edits August 11, 2011
Octocat-spinner-32 configure Added --debug-build configure option. March 18, 2014
Octocat-spinner-32 rubinius-build_tools.gemspec Added gemspecs for Rubinius meta-gems. October 14, 2013
Octocat-spinner-32 rubinius-developer_tools.gemspec Added gemspecs for Rubinius meta-gems. October 14, 2013
Octocat-spinner-32 rubinius.gemspec Fixed rubinius metagem description. October 21, 2013
Octocat-spinner-32 security.pub Add basic instructions for security reports July 08, 2013
README
1. What is Rubinius

Rubinius is an implementation of the Ruby programming language. Rubinius aims
to be compatible with Ruby version 2.1.

Rubinius includes a Ruby parser, bytecode virtual machine, bytecode compiler,
generational garbage collector, and just-in-time (JIT) native machine code
compiler. Rubinius uses native OS threads with no global interpreter lock.
Rubinius also provides C-API compatibility for native C extensions.

The Ruby core library is written almost entirely in Ruby. Rubinius tools, such
as the bytecode compiler and debugger, are also written in Ruby.  Rubinius
provides the same standard libraries as Matz's Ruby implementation (MRI) with
the following exceptions:

* Continuation
* Ripper
* TracePoint
* Tracer

Rubinius runs on Mac OS X and many Unix/Linux operating systems.  Microsoft
Windows is not yet supported.

Most popular Ruby applications, like Rails, run on Rubinius.


2. License

Rubinius uses the BSD license. See LICENSE for details.


3. Installing Rubinius from Source

To install Rubinius, use the following steps:

  1. Ensure that MRI 2.0+, rubygems, rake, and git are installed
  2. git clone git://github.com/rubinius/rubinius.git
  3. cd rubinius
  4. bundle
  5. ./configure --prefix=/path/to/install/dir
  6. rake

When the install process finishes, follow the directions printed to the
terminal to add the Rubinius executable (bin) directory to your PATH.


4. Using RubyGems

Rubinius comes with RubyGems built-in. To install a gem, run the following:

  rbx -S gem install <gem_name>


5. Documentation

After installing Rubinius, run 'rbx docs' to access the built-in documentation
at any time.


6. Tickets

Please file tickets for bugs or problems. The issue tracker is:

  http://github.com/rubinius/rubinius/issues


7. Contributing

The Rubinius team welcomes contributions. For more information read the
CONTRIBUTING file in the root directory of Rubinius.


8. Features Currently Not Supported

The following features of Ruby/MRI are currently not (yet) supported by
Rubinius:

* Keyword arguments (https://github.com/rubinius/rubinius/issues/2669)
* Refinements
* $SAFE levels
Something went wrong with that request. Please try again.