# Rubinius : Use Ruby™
Rubinius is an implementation of the Ruby programming language. The Rubinius bytecode virtual machine is written in C++. The bytecode compiler is written in pure Ruby. The vast majority of the core library is also written in Ruby, with some supporting primitives that interact with the VM directly.
Author: Less Than Three. <3. http://less.thanthree.com

1.2.3

## Overview

The Rubinius team is proud to announce the availability of 1.1.1.

1.1.1 is bugfix release for 1.1, containing minor performance improvements, compatibility adjustments, and bugfixes.

## About

Rubinius is a high performance environment for running code written in the Ruby programming language. It provides a number of virtual machine features found in other popular language runtimes such as generational garbage collection, Just-In-Time compilation, and compatibility with existing C APIs.

#### Stats

- Release Date: November 16th, 2010
- Commits: 206
- Days since last release: 64

#### Authors

- Brian Ford
- Charles Comstock
- Dirkjan Bussink
- Eero Saynatkari
- Eric Wong
- Evan Phoenix
- Ivan Samsonov
- Jari Bakken
- Jeremy Durham
- Matthew Draper
- Sean Bryant
- Tony Arcieri

## Summary

- Make CM#locate_line more strict. Fixes #563
- Make sure that the preinstalled dir is always present
- Updated Rapa source to 36f91258.
- Fixed code confusing GCC overflow checks in unpack.
- Show the missing file error to -c more clearly. Fixes #568
- Add ruby-debug stub gem
- Use redo_coerced when calling Float#divide. Fixes #564
- Remove old SendSite/Selector cruft
- Fix CompiledMethod#locate_line
- Add Rubinius::OS_ARGV and Rubinius::OS_STARTUP_DIR
- Change IO::Buffer => IO::InternalBuffer. Fixes #560
- Make sure there is a fallback policy. Fixes #561
- Explicitly add -fno-omit-frame-pointer to the build flags
- Workaround for FreeBSD by exposing dlopen directly
- Support for native extensions with a . in their name
- Add hook to allow code to install a custom debugger
- Add ability to scope and stop only in certain stack frames. Fixes #558
- Add rb_set_end_proc to ruby.h
- Make Readline library configurable.
- Imported pure Ruby Readline (rb-readline at e591463)
- Add Array#select via aliasing
- Handle next’ing out of rescue handlers. Fixes #556
- Fix Bignum#» to respect 2s complement properly
- Follow the weird self-in-eval behavior
- Add enough delegation to support Method#parameters. Fixes #557
- Wipe out CDPATH when building. Fixes #555
- Use Kernel.exec, not just exec because self is uncontrolled.
- Implement rb_set_end_proc
- Add rb_thread_wait_for
- Cleanup unused base64 code
- Fixed rbx compile -N broken by #531 fix.
- Ensure ObjectFlags bit fields are endian portable.
- Check nil object identity in IO#puts. Closes #550.
- Rework loader error reporting when running a script. Closes #551.
- Specify the version for FFI::Library::LIBC like ffi-ruby gem. Closes #546.
- Create gem cache dir with mkdir_p. Closes #541 again.
- Fixed function declarations. Closes #543.
- Backport add –cxx to configure from multiverse (6596ed7). Closes #542.
- Add rb_struct_new and rb_ary_freeze. Fixes #540
- Make sure the user’s gem cache directory exists. Fixes #541
- Incorporate rubygems loadtime speedup patch
- Speed up rubygems gemspec loading via caching
- Remove CompiledMethod#compile
- Seperate out running finalizers in profiler output
- Add ability to cache eval compile requests
- Handle fixnums in JIT float ops too
- Emit error message when attempting to run .rbc file.
- Add RE_* option macros to CAPI
- Get syslog passing the specs
- Avoid exception in Backtrace#show when show_color is false.
- Handle attr_assgn in splat properly. Fixes #531.
- Implement rb_protect_inspect and rb_inspecting_p. Fixes #517.
- Implement rb_exec_recursive (mostly cripped from 1.8.7)
- Make rb_gc_force_recycle a noop
- Add rb_cmpint, rb_cmperr, and rb_equal
- Don’t cache on autoload failure. Fixes #529
- Write out a newline for an empty string too. Fixes #525
- Add Regexp#search_from. Fixes #524
- Use string coersion for filename in class_eval / module_eval
- Current var_table can be NULL, fixes #527
- Add missing return value used in Errno.handle checks
- Allow for subclassing Thread, fixes #526
- Thread#new throws an exception when not given a block
- Propagate –cc configure setting to CC, CXX env vars. Closes #520.
- Removed -D from ‘rbx compile’ options. Closes #523.
- Better docs on installing gems with rbx.
- Fixed String#casecmp. Closes #518.
- Fixed –help output.
- See README for build, install directions. Closes #521.
- taking care of rb_ary_to_s for issue 517
- new capi method rb_obj_dup
- rb_str_new4 implementation.
- Improve performance of String#gsub. Fixes #515
- Use String#data to avoid subclass clobber. Fixes #516.
- Kernel.loop rescues StopIteration
- Convert Generator to use Fiber
- Add support for Enumerator#next using Threads and Fibers
- Use offset instead of substring. Fixes #514
- Allow for reopening subclasses of Module
- StringIO#gets can accepts string as separator. Fixes #513
- Better install UX and README instructions. Closes #511.
- Discover gdbm better. (Jeremey Evans)
- Build openssl ext with NO_STATIC_ENGINE on OpenBSD. (Jeremy Evans)
- Remove illegal casts. Fixes #509.
- Refuse to configure, build if RUBYLIB is set.
- Fix OpenBSD complaints about strcpy, sprintf.
- Don’t enable execinfo by default on OpenBSD.
- Add -D__STDC_LIMIT_MACROS to CFLAGS if it’s not there.
- Speed up rb_yield using some type checking tricks
- Fixed pack to taint output for tainted directives string.
- Added configure option to specify ‘rake’ command.
- Fix for missing pthread functions on OpenBSD.
- Fix String#split edge case. Fixes #505
- Set __STDC_LIMIT_MACROS for proper C99 compat. Fixes #507
- Relock the GIL in readline. Fixes #504.
- Set eval introduced locals in the proper scope. Fixes #506.
- Some OpenBSD fixes from Jeremy Evans.
- Set the scope of masgn locals early. Fixes #502.
- Use same wording/quoting as MRI. Fixes #503
- subclassing IO works properly for pipe/popen
- Enable running docs site with bootstrap Ruby using ‘rake docs’.
- Reorganize how the MRI backtrace is rendered. Fixes #501.
- Add missing pop to fix stack effect. Fixes #490
- Return the user’s object, not the coerced one. Fixes #499.
- Add Socket#connect_nonblock. Fixes #498.
- Add rb_io_close
- Add rb_memerror as a fatal condition. Fixes #496
- Add -fPIC to rbconfig CCDLFLAGS like MRI. Closes #492.
- Don’t allow meta classes to be allocated
- Preserve zero length captures. Fixes #495