The Ruby Programming Language
Ruby C HTML Yacc Emacs Lisp Makefile Other
Pull request Compare This branch is 825 commits ahead, 10497 commits behind ruby:trunk.
Latest commit 1132311 Mar 14, 2016 @vmg vmg Merge pull request #30 from github/vmg/ssl3
[BACKPORT] openssl: Allow building without SSLV3
Permalink
Failed to load latest commit information.
benchmark merge revision(s) 44772: [Backport #9430] Feb 22, 2014
bin * NEWS (with all sufficient information): Oct 11, 2013
bootstraptest merge revision(s) 44601: Jan 15, 2014
cygwin * cygwin/GNUmakefile.in (uncommon.mk): link *.res.o. Nov 5, 2012
defs * compile.c (iseq_compile_each): emit opt_str_freeze if the #freeze Nov 9, 2013
doc * remove trailing spaces. Dec 14, 2013
enc Cleanup type conversions Sep 22, 2014
ext openssl: Allow building without SSLV3 Mar 14, 2016
include Merge remote-tracking branch 'ruby/ruby_2_1' into dbussink/ruby-2-1-6 Apr 13, 2015
lib merge revision(s) 50829: [Backport #11248] Aug 18, 2015
man merge revision(s) r45896: [Backport #9773] Jul 3, 2014
misc misc/ruby-electric.el: Import version 2.1.1. Dec 17, 2013
missing fix typos. Patch by k_takata. May 19, 2013
nacl fix typos. Patch by k_takata. May 19, 2013
sample merge revision(s) 44403: Dec 25, 2013
script reduce parallel workers Jan 7, 2014
spec merge revision(s) r49752,r49753: [Backport #10953] Mar 9, 2015
symbian Added HAVE_LABS and HAVE_LLABS to config.h Nov 13, 2010
template remove const from encoding tables so we can change them at runtime Jan 3, 2014
test Merge tag 'v2_1_7' into 2.1 Aug 19, 2015
tool Add config.guess and config.sub to remove runtime download dependency Apr 15, 2015
win32 merge revision(s) 51202,51203,51204: [Backport #11340] Aug 17, 2015
.document * .document: Removed extra space Jan 16, 2013
.editorconfig .editorconfig: new Sep 15, 2012
.gdbinit .gdbinit: initialize Dec 13, 2013
.gitignore * .gitignore: ignored *.old files. Dec 17, 2013
.indent.pro * .indent.pro: added for ruby-style. Mar 11, 2010
.travis.yml merge revision(s) 51409,51453: [Backport #10910] Aug 17, 2015
BSDL * BSDL: update copyright notice for 2013. Feb 9, 2013
COPYING * COPYING: change Ruby's License from a dual license with GPLv2 Sep 15, 2010
COPYING.ja Change encoding from EUC-JP to UTF-8. [Feature #5128] Sep 4, 2011
ChangeLog Merge tag 'v2_1_7' into 2.1 Aug 19, 2015
GPL * GPL: update text of GPLv2. [ruby-core:44488] [Bug #6328] Jun 3, 2012
KNOWNBUGS.rb * test/ruby/test_method.rb (test_unlinked_method_entry_in_method_obje… Mar 25, 2013
LEGAL * util.c, include/ruby/util.h (ruby_add_suffix): remove the function. Aug 3, 2011
Makefile.in Makefile.in, configure.in: cppflags Dec 17, 2013
NEWS * lib/rubygems: RubyGems 2.2.2 which contains the following bug fixes: Feb 6, 2014
README * README: Fix typo by Benjamin Winkler [Fixes GH-281] Apr 11, 2013
README.EXT merge revision(s) r45495: [Backport #9662] Jul 2, 2014
README.EXT.ja merge revision(s) r45495: [Backport #9662] Jul 2, 2014
README.ja Fix the mail address of Matz; ruby-lang.jp does not exist. Jun 11, 2013
addr2line.c * addr2line.c: Include ELF header after system headers (especially Oct 26, 2013
addr2line.h * addr2line.c: use USE_ELF instead of __ELF__ because Solaris Jul 8, 2011
array.c merge revision(s) 50827,50921: [Backport #11235] Aug 17, 2015
bignum.c merge revision(s) r47860: [Backport #10350] Nov 6, 2014
class.c Merge remote-tracking branch 'ruby/ruby_2_1' into dbussink/ruby-2-1-6 Apr 13, 2015
common.mk Merge tag 'v2_1_7' into 2.1 Aug 19, 2015
compar.c merge revision(s) 49224,49225,49234,49235: [Backport #10711] Jun 30, 2015
compile.c Merge tag 'v2_1_7' into 2.1 Aug 19, 2015
complex.c merge revision(s) r45375,r48260,r48320,r48746: [Backport #10526] Jan 21, 2015
configure add generated configure for older autoconf machines Jan 7, 2014
configure.in Merge remote-tracking branch 'ruby/ruby_2_1' into dbussink/ruby-2-1-6 Apr 13, 2015
constant.h * class.c, include/ruby/ruby.h: add write barriers for T_CLASS, Jun 14, 2013
cont.c merge revision(s) r44712,r44715,r44716,r44722,r44725,r44726,r44753: [… Jun 19, 2014
debug.c * include/ruby/ruby.h: rename FL_OLDGEN to FL_PROMOTED. Nov 4, 2013
dir.c merge revision(s) r47850: [Backport #10294] Oct 15, 2014
dln.c merge revision(s) 50416: [Backport #11111] May 11, 2015
dln.h dln.c: extra arguments Jun 30, 2013
dln_find.c dln.c: extra arguments Jun 30, 2013
dmydln.c * encoding.c (rb_enc_codepoint_len): Use UNREACHABLE to avoid "control Apr 13, 2012
dmyext.c no K&R style May 19, 2012
encoding.c Merge tag 'v2_1_3' into dbussink/ruby-2-1-3 Sep 20, 2014
enum.c merge revision(s) r46095: [Backport #9819] Jul 3, 2014
enumerator.c merge revision(s) r46099: [Backport #9814] Jul 3, 2014
error.c merge revision(s) r47820: [Backport #10330] Oct 15, 2014
eval.c merge revision(s) r48744,r48752: [Backport #10579] Jan 21, 2015
eval_error.c * eval_error.c (warn_printf): use rb_vsprintf instead so ruby specific Jun 24, 2013
eval_intern.h merge revision(s) r45503,r45504,r45508,r45509,r47275: [Backport #9692] Aug 25, 2014
eval_jump.c eval_jump.c: reuse same tag Nov 19, 2013
file.c merge revision(s) 50887,50896,50902: [Backport #11060] Jul 3, 2015
gc.c Merge tag 'v2_1_7' into 2.1 Aug 19, 2015
gc.h * gc.h (rb_objspace_reachable_objects_from_root): added. Oct 15, 2013
gem_prelude.rb * ruby.c (process_options): revert r30549. Jan 17, 2011
golf_prelude.rb * golf_prelude.rb: syntax formatting for whitespace [Fixes GH-425] Nov 7, 2013
goruby.c * goruby.c (init_golf): append suffix. Oct 28, 2013
hash.c Merge tag 'v2_1_7' into 2.1 Aug 19, 2015
ia64.s * removed trailing spaces. Jun 9, 2012
inits.c ext/rbconfig/sizeof: move to an extension library Nov 18, 2013
insns.def Fix indenting to match upstream Sep 22, 2014
internal.h Merge tag 'v2_1_7' into 2.1 Aug 19, 2015
io.c merge revision(s) 51066: [Backport #11319] Aug 17, 2015
iseq.c merge revision(s) 50541,50542: [Backport #11159] May 20, 2015
iseq.h * include/ruby/ruby.h (struct rb_data_type_struct), gc.c: add Jun 19, 2013
lex.c.blt * defs/keywords (reserved_word): made inline function static. May 16, 2009
load.c merge revision(s) 50515: [Backport #11155] Jun 9, 2015
loadpath.c * loadpath.c (RUBY_REVISION): Defined to suppress revision.h Jun 17, 2013
localeinit.c localeinit.c: split Jul 14, 2013
main.c * include/ruby/debug.h: introdudced. Nov 20, 2012
marshal.c * marshal.c (r_symreal): register the symbol name first so that May 29, 2015
math.c math.c: fix for Bignum argument Sep 28, 2013
method.h Merge remote-tracking branch 'ruby/ruby_2_1' into dbussink/ruby-2-1-6 Apr 13, 2015
miniinit.c ext/rbconfig/sizeof: move to an extension library Nov 18, 2013
node.c merge revision(s) r46649: [Backport #10005] Aug 2, 2014
node.h * node.h: catch up comments for last commit. Nov 4, 2013
numeric.c merge revision(s) 49235: [Backport #10711] Jul 3, 2015
object.c merge revision(s) r45375,r48260,r48320,r48746: [Backport #10526] Jan 21, 2015
pack.c merge revision(s) r46778: [Backport #10019] Jul 13, 2014
parse.y merge revision(s) 51350: [Backport #11380] Aug 17, 2015
pool_alloc.h st: pool allocation Jan 3, 2014
pool_alloc.inc.h st: pool allocation Jan 3, 2014
prelude.rb * prelude.rb: Moved Mutex#synchronize to Nov 19, 2012
probes.d vm_method.c: add new ruby::method-cache-clear dtrace probe Dec 9, 2013
probes_helper.h probes_helper.h: RUBY_DTRACE_HOOK Dec 11, 2012
proc.c merge revision(s) r48160: [Backport #10432] Feb 2, 2015
process.c merge revision(s) r46441: [Backport #9946] Aug 30, 2014
random.c * random.c (rand_init): Make it possible to specify arbitrary array Nov 20, 2013
range.c merge revision(s) 50421: [Backport #11113] May 21, 2015
rational.c merge revision(s) 50406,50407: [Backport #11075] May 21, 2015
re.c Merge tag 'v2_1_7' into 2.1 Aug 19, 2015
regcomp.c merge r47598 partially. extracted commits are as follows. [Bug #9728] Oct 15, 2014
regenc.c Revert r41786 "broken utf-8" Jul 9, 2013
regenc.h defines.h: RUBY_SYMBOL_EXPORT_{BEGIN,END} Apr 5, 2013
regerror.c merge r46831 partially. extracted commits are as follows. Aug 19, 2014
regexec.c merge r47598 partially. extracted commits are as follows. [Bug #9728] Oct 15, 2014
regint.h * Merge Onigmo 5.13.4 f22cf2e566712cace60d17f84d63119d7c5764ee. Apr 13, 2013
regparse.c merge r46831 partially. extracted commits are as follows. [Bug #9344] Sep 10, 2014
regparse.h defines.h: RUBY_SYMBOL_EXPORT_{BEGIN,END} Apr 5, 2013
regsyntax.c * Merge Onigmo-5.13.1. [ruby-dev:45057] [Feature #5820] Feb 17, 2012
ruby.c add --encoding-compatibility mode to prevent exceptions on operations… Jan 3, 2014
ruby_atomic.h merge revision(s) 44568: [Backport #9399] Feb 22, 2014
safe.c safe.c: ruby_safe_level_4_warning Jul 20, 2013
signal.c merge revision(s) r49463: [Backport #10814] Feb 1, 2015
siphash.c siphash.c: fix missing condition Nov 30, 2013
siphash.h * siphash.h: check configure macros before include newer headers. Nov 9, 2012
sparc.c * sparc.c: Use __asm__ instead of asm for gcc. Apr 27, 2013
sprintf.c merge revision(s) r46569: [Backport #9982] Sep 3, 2014
st.c Merge tag 'v2_1_3' into dbussink/ruby-2-1-3 Sep 20, 2014
strftime.c * strftime.c (rb_strftime_with_timespec): Test yday range. Apr 6, 2013
string.c Merge tag 'v2_1_7' into 2.1 Aug 19, 2015
struct.c merge revision(s) r45462,r45463,r45466: [Backport #9684] Jul 3, 2014
thread.c merge revision(s) r49428: [Backport #10694] Mar 9, 2015
thread_native.h * thread_native.h: add rb_nativethread_self() which returns Jul 23, 2013
thread_pthread.c merge revision(s) 50316: [Backport #11030] Apr 28, 2015
thread_pthread.h * thread_(pthread|win32).h: rename rb_thread_cond_t to Jul 23, 2013
thread_win32.c merge revision(s) r45947,r45951: [Backport #9739] [Backport #9844] Jun 23, 2014
thread_win32.h * thread_(pthread|win32).h: rename rb_thread_cond_t to Jul 23, 2013
time.c merge revision(s) r47196: [Backport #10144] Sep 9, 2014
timev.h timev.h: move time_t stuffs Mar 30, 2013
transcode.c merge revision(s) 51116: [Backport #11324] Aug 17, 2015
transcode_data.h defines.h: RUBY_SYMBOL_EXPORT_{BEGIN,END} Apr 5, 2013
util.c merge revision(s) 50671: [Backport #11192] Jul 3, 2015
variable.c merge revision(s) r44535,r44536: [Backport #9321] Jun 29, 2014
version.c version.c: EXIT_SUCCESS Nov 28, 2013
version.h Merge tag 'v2_1_7' into 2.1 Aug 19, 2015
vm.c merge revision(s) 51263,51264: [Backport #11352] Aug 17, 2015
vm_backtrace.c * error.c: add Exception#backtrace_locations. Dec 13, 2013
vm_core.h merge revision(s) r49685,r49687: [Backport #10885] Mar 17, 2015
vm_debug.h defines.h: RUBY_SYMBOL_EXPORT_{BEGIN,END} Apr 5, 2013
vm_dump.c merge revision(s) r46463: [Backport #9957] Jul 30, 2014
vm_eval.c merge revision(s) 50430,50440: [Backport #11117] Jul 3, 2015
vm_exec.c * vm_exec.h (VM_DEBUG_STACKOVERFLOW): added. Dec 18, 2013
vm_exec.h * vm_exec.h (VM_DEBUG_STACKOVERFLOW): added. Dec 18, 2013
vm_insnhelper.c merge revision(s) 49898: [Backport #10951] Jun 17, 2015
vm_insnhelper.h * include/ruby/ruby.h: rename OBJ_WRITE and OBJ_WRITTEN into Dec 20, 2013
vm_method.c Merge remote-tracking branch 'ruby/ruby_2_1' into dbussink/ruby-2-1-6 Apr 13, 2015
vm_opts.h fix minor code comment typos Apr 22, 2013
vm_trace.c merge revision(s) r46419,r46429: [Backport #9940] Jul 30, 2014
vsnprintf.c merge revision(s) r46098: [Backport #9861] Jun 29, 2014

README

= 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.)
    cf. http://bugs.ruby-lang.org/projects/ruby-trunk/wiki/SupportedPlatforms


== How to get Ruby

For a complete list of ways to install Ruby, including using third party
tools like rvm, see:

http://www.ruby-lang.org/en/downloads/

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

ftp://ftp.ruby-lang.org/pub/ruby/

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

  $ svn co http://svn.ruby-lang.org/repos/ruby/trunk/ ruby

Or if you are using git then use the following command:

  $ git clone git://github.com/ruby/ruby.git

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

  $ svn ls http://svn.ruby-lang.org/repos/ruby/branches/

Or if you are using git then use the following command:

  $ git ls-remote git://github.com/ruby/ruby.git

== Ruby home-page

The URL of the Ruby home-page is:

http://www.ruby-lang.org/


== Mailing list

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

        subscribe YourFirstName YourFamilyName
e.g.
        subscribe Joseph Smith

in the mail body (not subject) to the address <mailto:ruby-talk-ctl@ruby-lang.org>.


== How to compile and install

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

0.   If you want to use Microsoft Visual C++ to compile ruby,
     read win32/README.win32 instead of this document.

1.   If +./configure+ does not exist or is older than configure.in,
     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
     statically.

     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
     +ext/Setup+.

     Usually this step will not be needed.

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.

Some extension libraries may not get compiled because of lack of
necessary external libraries and/or headers, then you will need to run
'<tt>make distclean-ext</tt>' to remove old configuration after
installing them in such case.

== Copying

See the file +COPYING+.

== Feedback

Questions about the Ruby language can be asked on the Ruby-Talk mailing list
(http://www.ruby-lang.org/en/community/mailing-lists) or on websites like
(http://stackoverflow.com).

Bug reports should be filed at http://bugs.ruby-lang.org

== The Author

Ruby was originally designed and developed by Yukihiro Matsumoto (Matz) in 1995.

<mailto:matz@ruby-lang.org>

--
Local variables:
mode: rdoc
end: