Skip to content
UNOFFICIAL: please use instead.
Ruby C Emacs Lisp Tcl Ragel in Ruby Host Shell Other
Pull request Compare This branch is 3049 commits ahead, 15099 commits behind ruby:trunk.
Failed to load latest commit information.
bcc32 * read API version from include/ruby/version.h.
benchmark * benchmark/bm_vm1_lvar_init.rb: fix newline code.
bin * lib/rdoc: Update to RDoc 3.9. Fixed `ri []`, stopdoc creating an
bootstraptest color option
cygwin * cygwin/ (SCRIPTPROGRAMS): ignore backup files and etc.
defs * tool/rbinstall.rb (gem): install all gemspecs under lib and ext.
doc remove unbalanced parenthesis
enc enc: fix dependencies
ext Merge branch 'trunk' of into trunk
include Feature #5896
lib lib/test/unit.rb: split platform condition
man * README.ja: Update to
misc * misc/rdoc-mode.el (rdoc-imenu-create-index): Add imenu support
missing Imports Ruby's port to NativeClient (a.k.a NaCl).
nacl Imports Ruby's port to NativeClient (a.k.a NaCl).
sample color option
spec * spec/default.mspec: expand relative path for ruby_exe which uses
symbian Added HAVE_LABS and HAVE_LLABS to config.h
template * template/Doxyfile.tmpl (EXCLUDE_PATTERNS): exclude files only for t…
test Merge branch 'trunk' of into trunk
tool common test options
win32 * win32/win32.c (finish_overlapped_socket, overlapped_socket_io):
.document * prelude.rb, .document: Stuff in prelude.rb should be documented
.gdbinit * .gdbinit (rb_ps_vm): follow st_table's packing change.
.gitignore * ext/iconv: deprecated. [Feature #6322] * added for ruby-style.
.travis.yml * .travis.yml (install): It seems tcl/tk is skipped in Travis
BSDL Add BSDL file.
COPYING * COPYING: change Ruby's License from a dual license with GPLv2
COPYING.ja Change encoding from EUC-JP to UTF-8. [Feature #5128]
ChangeLog utc offset in seconds
GPL * It is confusing to put the GPL license terms in the file COPYING;
KNOWNBUGS.rb indented.
LEGAL * util.c, include/ruby/util.h (ruby_add_suffix): remove the function. Bug #6462: EXTSOLIBS
NEWS * NEWS: expanded a tab.
README single quotes
README.EXT * parse.y (rb_check_id_cstr): new function to check if ID is
README.EXT.ja * parse.y (rb_check_id_cstr): new function to check if ID is
README.ja inilne markups
addr2line.c * io.c (io_encoding_set): suppress warnings. [ruby-dev:45627]
addr2line.h * addr2line.c: use USE_ELF instead of __ELF__ because Solaris
array.c * include/ruby/intern.h: Add rb_check_arity, rb_error_arity [#6085]
atomic.h * complex.c: use "__sun" instead of "__sun__" to detect SunOS.
bignum.c * reduce UNREACHABLE.
class.c * class.c (rb_mod_init_copy): Clear the cached inspect string of a common test options
compar.c * array.c: Documentation: change => in call-seq to ->.
compile.c * vm_core.h: add a data type rb_location_t to store iseq location
complex.c * complex.c (nucomp_expt): [ruby-core:44170]. static-linked-ext: no ext/libext.a
constant.h * variable.c (rb_const_set): show the previous definition
cont.c decrease fiber stack size. 1MB is too large for windows. [Bug #6344]
debug.c * gc.c: use Bitmap Marking algorithm to avoid copy-on-write of
debug.h * debug.h: parenthesize macro arguments.
dir.c Imports Ruby's port to NativeClient (a.k.a NaCl).
dln.c Imports Ruby's port to NativeClient (a.k.a NaCl).
dln.h * (XCFLAGS): use -fvisibility=hidden if possible.
dln_find.c * gc.c (rb_objspace_free): global_List is allocated with xmalloc.
dmydln.c * encoding.c (rb_enc_codepoint_len): Use UNREACHABLE to avoid "control
dmyencoding.c * encoding.c (enc_init_db): moved to enc/encdb.c.
dmyext.c no K&R style
dmyversion.c * dmyversion.c: empty load path in miniruby.
encoding.c * reduce UNREACHABLE.
enum.c * enum.c (enum_count): Enumerable#count no longer uses #size when
enumerator.c use RB_TYPE_P() instead of comparison of TYPE()
error.c * error.c (exc_set_backtrace): Updated documentation to indicate
eval.c * vm.c: add RubyVM::Backtrace object (btobj).
eval_error.c * vm_method.c (rb_method_defined_by): removed.
eval_intern.h * eval_error.c (rb_print_undef_str): new function to raise
eval_jump.c volatile errinfo
file.c file.c: fix for UNC
gc.c * gc.c (obj_free): doesn't free a method table if it doesn't
gc.h Imports Ruby's port to NativeClient (a.k.a NaCl).
gem_prelude.rb * ruby.c (process_options): revert r30549.
golf_prelude.rb cancel subversion backfire. sorry
goruby.c * goruby.c: windows support.
hash.c use RB_TYPE_P() instead of comparison of TYPE()
ia64.s add reference.
id.c * parse.y (assoc, parser_yylex): add syntax to splat keyword hash.
inits.c * internal.h: declare internal functions here.
insns.def * numeric.c: fix flodivmod for cornercases [Bug #6044]
internal.h * vm_method.c (rb_method_defined_by): removed.
io.c Bug #6487
iseq.c * vm_core.h: add a data type rb_location_t to store iseq location
iseq.h * iseq.h, iseq.c, compile.c: Change the line number data structure
lex.c.blt * defs/keywords (reserved_word): made inline function static.
load.c * thread.c (rb_threadptr_execute_interrupts_common):
main.c * main.c: <stdlib.h> is needed, to introduce the getenv(3)
marshal.c use RB_TYPE_P() instead of comparison of TYPE()
math.c * complex.c: use "__sun" instead of "__sun__" to detect SunOS.
method.h * proc.c (method_hash, proc_hash): Fix {Unbound}Method#hash
node.c * compile.c (iseq_set_arguments): keyword rest arg without keyword args.
node.h * enumerator.c (lazy_take): add Enumerable::Lazy#take.
numeric.c * reduce UNREACHABLE.
object.c * object.c (Init_Object): Added reference to variable.c where
pack.c use RB_TYPE_P() instead of comparison of TYPE()
parse.y Bug #6403: reset states after empty args
prelude.rb * remove trailing spaces.
proc.c use RB_TYPE_P() instead of comparison of TYPE()
process.c Imports Ruby's port to NativeClient (a.k.a NaCl).
random.c * random.c (random_init): Clarify that the default seed is
range.c trivial changes
rational.c * complex.c (nucomp_marshal_load): raise error on invalid data.
re.c use RB_TYPE_P() instead of comparison of TYPE()
regcomp.c Remove unused variables.
regenc.c * Merge Onigmo-5.13.1. [ruby-dev:45057] [Feature #5820]
regenc.h * Merge Onigmo-5.13.1. [ruby-dev:45057] [Feature #5820]
regerror.c * regcomp.c: Merge Onigmo 3d855b30d574536d3ae600260208c6624ae4791c.
regexec.c * regcomp.c: Merge Onigmo 3d855b30d574536d3ae600260208c6624ae4791c.
regint.h * regint.h (BITS_IN_ROOM, BS_ROOM, BS_BIT): suppress warnings.
regparse.c * regcomp.c: Merge Onigmo 3d855b30d574536d3ae600260208c6624ae4791c.
regparse.h * Merge Onigmo-5.13.1. [ruby-dev:45057] [Feature #5820]
regsyntax.c * Merge Onigmo-5.13.1. [ruby-dev:45057] [Feature #5820]
ruby.c ruby.c: fixed typo
safe.c * use RB_TYPE_P which is optimized for constant types, instead of
signal.c Imports Ruby's port to NativeClient (a.k.a NaCl).
sparc.c * README.ja: Update to
sprintf.c sprintf.c: inspect by plus
st.c * st.c (st_foreach_check, st_foreach): remove ancient check. This
strftime.c strftime.c: triple colons modifier
string.c use RB_TYPE_P() instead of comparison of TYPE()
struct.c * struct.c (rb_struct_members): Refactoring. As Struct#members had
thread.c use RB_TYPE_P() instead of comparison of TYPE()
thread_pthread.c * thread_pthread.c (rb_thread_create_timer_thread): Added error
thread_pthread.h * thread_pthread.h: no Structured Exception Handling like macros.
thread_win32.c * thread_win32.c (TIME_QUANTUM_USEC): 10ms(= old setting) [experimental]
thread_win32.h fix win32 native_cond_timedwait() makes SIGSEGV.
time.c utc offset in seconds
timev.h * timev.h (TIME_SCALE): defined as 1000000000.
transcode.c update doc.
transcode_data.h Supports static linking of extensions and encodings again.
util.c Imports Ruby's port to NativeClient (a.k.a NaCl).
variable.c * variable.c (trace_ev): Removed "not reached" comment as this line is
version.c * (verconf.h): separate load path specific stuff from
version.h * 2012-05-30
vm.c * vm.c (backtrace_*): change type of lev and n from size_t to int.
vm_core.h * vm.c: refactoring backtrace related funcitons.
vm_dump.c * vm.c: refactoring backtrace related funcitons.
vm_eval.c * vm.c (backtrace_*): change type of lev and n from size_t to int.
vm_exec.c * vm_exec.c: remove conditions for clang
vm_exec.h * vm_exec.h: parenthesize macro arguments.
vm_insnhelper.c Feature #5896
vm_insnhelper.h fix typos
vm_method.c * vm_method.c (rb_method_defined_by): removed.
vm_opts.h * vm_opts.h: enable "OPT_TRACE_INSTRUCTION" on default.
vsnprintf.c sprintf.c: inspect by plus


= What's Ruby

Ruby is the interpreted scripting language for quick and
easy object-oriented programming.  It has many features to
process text files and to do system management tasks (as in
Perl).  It is simple, straight-forward, and extensible.

== Features of Ruby

*   Simple Syntax
*   *Normal* Object-Oriented features(ex. class, method calls)
*   *Advanced* Object-Oriented features(ex. Mix-in, Singleton-method)
*   Operator Overloading
*   Exception Handling
*   Iterators and Closures
*   Garbage Collection
*   Dynamic Loading of Object files(on some architecture)
*   Highly Portable (works on many Unix-like/POSIX compatible platforms
    as well as Windows, Mac OS X, BeOS etc.)

== How to get Ruby

The Ruby distribution files can be found in the following FTP site:

The trunk of the Ruby source tree can be checked out with the
following command:

  $ svn co ruby

Or if you are using git then use following command:

  $ git clone git://

There are some other branches under development.  Try the following
command and see the list of branches:

  $ svn ls

Or if you are using git then use following command:

  $ git ls-remote git://

== Ruby home-page

The URL of the Ruby home-page is:

== Mailing list

There is a mailing list to talk about Ruby.
To subscribe this list, please send the following phrase

	subscribe YourFirstName YourFamilyName
        subscribe Joseph Smith

in the mail body (not subject) to the address <>.

== How to compile and install

This is what you need to do to compile and install Ruby:

1.   If +./configure+ does not exist or is older than,
     run autoconf to (re)generate configure.

2.   Run +./configure+, which will generate config.h and Makefile.

     Some C compiler flags may be added by default depending on your
     environment.  Specify <tt>optflags=..</tt> and <tt>warnflags=..</tt> as
     necessary to override them.

3.   Edit +defines.h+ if you need. Usually this step will not be needed.

4.   Remove comment mark(<tt>#</tt>) before the module names from +ext/Setup+ (or
     add module names if not present), if you want to link modules

     If you don't want to compile non static extension modules
     (probably on architectures which does not allow dynamic loading),
     remove comment mark from the line "<tt>#option nodynamic</tt>" in

5.   Run +make+.

6.   Optionally, run '<tt>make check</tt>' to check whether the compiled Ruby
     interpreter works well. If you see the message "<tt>check succeeded</tt>",
     your ruby works as it should (hopefully).

7.   Run '<tt>make install</tt>'

     This command will create following directories and install files
     onto them.

     * <tt>${DESTDIR}${prefix}/bin</tt>
     * <tt>${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}</tt>
     * <tt>${DESTDIR}${prefix}/include/ruby-${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
     * <tt>${DESTDIR}${prefix}/lib</tt>
     * <tt>${DESTDIR}${prefix}/lib/ruby</tt>
     * <tt>${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}</tt>
     * <tt>${DESTDIR}${prefix}/lib/ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
     * <tt>${DESTDIR}${prefix}/lib/ruby/site_ruby</tt>
     * <tt>${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}</tt>
     * <tt>${DESTDIR}${prefix}/lib/ruby/site_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
     * <tt>${DESTDIR}${prefix}/lib/ruby/vendor_ruby</tt>
     * <tt>${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}</tt>
     * <tt>${DESTDIR}${prefix}/lib/ruby/vendor_ruby/${MAJOR}.${MINOR}.${TEENY}/${PLATFORM}</tt>
     * <tt>${DESTDIR}${prefix}/lib/ruby/gems/${MAJOR}.${MINOR}.${TEENY}</tt>
     * <tt>${DESTDIR}${prefix}/share/man/man1</tt>
     * <tt>${DESTDIR}${prefix}/share/ri/${MAJOR}.${MINOR}.${TEENY}/system</tt>

     If Ruby's API version is '_x.y.z_', the <tt>${MAJOR}</tt> is '_x_', the
     <tt>${MINOR}</tt> is '_y_', and the <tt>${TEENY}</tt> is '_z_'.

     *NOTE*: teeny of the API version may be different from one of
     Ruby's program version

     You may have to be a super user to install ruby.

If you fail to compile ruby, please send the detailed error report with
the error log and machine/OS type, to help others.

== Copying

See the file +COPYING+.

== The Author

Feel free to send comments and bug reports to the author.  Here is the
author's latest mail address:


created at: Thu Aug  3 11:57:36 JST 1995
Local variables:
mode: rdoc
Something went wrong with that request. Please try again.