You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Koichi Sasada b3c13de858 skip a test on non-UTF-8 locale 6 hours ago
.github CI: Fix the no such file or directory error with the working directory. 4 days ago
basictest
benchmark Avoid allocation when passing no keywords to anonymous kwrest methods 1 week ago
bin
bootstraptest Add pushtoarraykwsplat instruction to avoid unnecessary array allocation 6 hours ago
ccan
coroutine Win32: Use prototype 1 week ago
coverage
cygwin
defs
doc s/ therefor/therefore/ 6 days ago
enc
ext Move ripper_validate_object to ripper_init.c.tmpl 14 hours ago
gems Use commit with Ruby 3.4 support 13 hours ago
include Win32: Fix pre-defined macros for platforms 1 week ago
internal [Feature #20257] Rearchitect Ripper 16 hours ago
lib [ruby/uri] Use https instead of http 14 hours ago
libexec
man
misc [Feature #20257] Rearchitect Ripper 16 hours ago
missing
prism [ruby/prism] Fix eval encoding switching to UTF-8 9 hours ago
sample
spec [Bug #20280] Fix wrong tests 2 days ago
template Alias init functions 2 weeks ago
test skip a test on non-UTF-8 locale 6 hours ago
tool Fix the version in missing-baseruby 7 hours ago
wasm
win32 Do not include a backtick in error messages and backtraces 6 days ago
yjit Add pushtoarraykwsplat instruction to avoid unnecessary array allocation 6 hours ago
.dir-locals.el
.document
.editorconfig
.gdbinit
.git-blame-ignore-revs
.gitattributes
.gitignore
.indent.pro
.rdoc_options
.rspec_parallel
.travis.yml Use travis_wait for test-spec as well 4 days ago
BSDL
CONTRIBUTING.md
COPYING
COPYING.ja
GPL
KNOWNBUGS.rb
LEGAL
NEWS.md Update bundled gems list at 96ede4d192 [ci skip] 2 days ago
README.EXT
README.EXT.ja
README.ja.md
README.md
aclocal.m4
addr2line.c Move an embedded directive outside macro arguments 2 weeks ago
addr2line.h
array.c [DOC] Doc compliance (#9955) 6 days ago
array.rb Use `defined?(yield)` and `SIZED_ENUMERATOR` 3 days ago
ast.c [Feature #20257] Rearchitect Ripper 16 hours ago
ast.rb
autogen.sh
bignum.c Do not include a backtick in error messages and backtraces 6 days ago
builtin.c
builtin.h
class.c Do not include a backtick in error messages and backtraces 6 days ago
common.mk Don't exclude `test_gem_package_task.rb` explicitly. 2 days ago
compar.c
compile.c Add pushtoarraykwsplat instruction to avoid unnecessary array allocation 6 hours ago
complex.c Replace assert with RUBY_ASSERT in complex.c 1 week ago
configure.ac Install binary executable files to architecture dependent path 3 days ago
constant.h
cont.c
darray.h Replace assert with RUBY_ASSERT in darray.h 1 week ago
debug.c Do not include a backtick in error messages and backtraces 6 days ago
debug_counter.c
debug_counter.h
dir.c
dir.rb
dln.c Do not define ABI version in statically linked objects 2 weeks ago
dln.h
dln_find.c
dmydln.c
dmyenc.c
dmyext.c
encindex.h
encoding.c
enum.c Replace assert with RUBY_ASSERT in enum.c 1 week ago
enumerator.c
error.c Optional detail info at assertion failure 2 weeks ago
eval.c Do not include a backtick in error messages and backtraces 6 days ago
eval_error.c Do not include a backtick in error messages and backtraces 6 days ago
eval_intern.h
eval_jump.c
file.c Do not include a backtick in error messages and backtraces 6 days ago
gc.c Use rb_gc_mark_and_move for imemo 9 hours ago
gc.rb
gem_prelude.rb
golf_prelude.rb
goruby.c
hash.c [DOC] Doc compliance (#9955) 6 days ago
hrtime.h
id_table.c Replace assert with RUBY_ASSERT in id_table.c 1 week ago
id_table.h
inits.c
insns.def Add pushtoarraykwsplat instruction to avoid unnecessary array allocation 6 hours ago
internal.h
io.c Remove used str field in struct binwrite_arg 5 days ago
io.rb
io_buffer.c
iseq.c [PRISM] Correctly hook up line numbers for eval 6 days ago
iseq.h
kernel.rb Use `defined?(yield)` and `SIZED_ENUMERATOR` 3 days ago
lex.c.blt
load.c [PRISM] Correctly hook up line numbers for eval 6 days ago
loadpath.c
localeinit.c
main.c Adjust styles [ci skip] 1 week ago
marshal.c Do not include a backtick in error messages and backtraces 6 days ago
marshal.rb
math.c
memory_view.c
method.h
mini_builtin.c
miniinit.c
nilclass.rb
node.c Use rb_gc_mark_and_move for imemo 9 hours ago
node.h Use rb_gc_mark_and_move for imemo 9 hours ago
node_dump.c [Feature #20257] Rearchitect Ripper 16 hours ago
numeric.c Use `defined?(yield)` and `SIZED_ENUMERATOR` 3 days ago
numeric.rb Use `defined?(yield)` and `SIZED_ENUMERATOR` 3 days ago
object.c Use `defined?(yield)` and `SIZED_ENUMERATOR` 3 days ago
pack.c
pack.rb
parse.y Move ripper_validate_object to ripper_init.c.tmpl 14 hours ago
parser_bits.h
parser_node.h
parser_st.c
parser_st.h
parser_value.h
prelude.rb
prism_compile.c [PRISM] GC guard strings 4 days ago
prism_compile.h [PRISM] Compile constant reads using opt_getconstant_path 2 weeks ago
prism_init.c
probes.d
probes_helper.h
proc.c Do not include a backtick in error messages and backtraces 6 days ago
process.c
ractor.c
ractor.rb
ractor_core.h
random.c
range.c Do not include a backtick in error messages and backtraces 6 days ago
rational.c Replace assert with RUBY_ASSERT in rational.c 1 week ago
re.c Fix memory leak in OnigRegion when match raises 3 weeks ago
regcomp.c Fix [Bug #20246]: Don't set next_head_exact if a capture is called (#9897) 1 week ago
regenc.c [Bug #20239] Fix overflow at down-casting 2 weeks ago
regenc.h
regerror.c
regexec.c [Bug #20239] Fix overflow at down-casting 2 weeks ago
regint.h Fix memory leak in stk_base when Regexp timeout 3 weeks ago
regparse.c
regparse.h
regsyntax.c
rjit.c Do not include a backtick in error messages and backtraces 6 days ago
rjit.h
rjit.rb
rjit_c.c
rjit_c.h
rjit_c.rb Bump the required BASERUBY version to 3.0 (#9976) 5 days ago
ruby-runner.c
ruby.c Update warning flags before dump 10 hours ago
ruby_assert.h
ruby_atomic.h
ruby_parser.c Use rb_gc_mark_and_move for imemo 9 hours ago
rubyparser.h Use rb_gc_mark_and_move for imemo 9 hours ago
rubystub.c
scheduler.c
shape.c
shape.h
signal.c Do not include a backtick in error messages and backtraces 6 days ago
siphash.c
siphash.h
sparc.c
sprintf.c
st.c Move clean-up after table rebuilding 2 weeks ago
strftime.c
string.c [Bug #20280] Check by `rb_parser_enc_str_coderange` 2 days ago
string.rb [DOC] Doc compliance (#9955) 6 days ago
struct.c Do not include a backtick in error messages and backtraces 6 days ago
symbol.c YJIT: Simplify Kernel#send guards and admit more cases (#9956) 6 days ago
symbol.h
symbol.rb
thread.c Do not include a backtick in error messages and backtraces 6 days ago
thread_none.c
thread_none.h
thread_pthread.c notify ASAN about M:N threading stack switches 2 weeks ago
thread_pthread.h
thread_pthread_mn.c Fix a warning with USE_RUBY_DEBUG_LOG=1 on macOS 7 days ago
thread_sync.c Replace assert with RUBY_ASSERT in thread_sync.c 1 week ago
thread_sync.rb
thread_win32.c
thread_win32.h
time.c [DOC] Functions for `Time#initialize` implementation 4 days ago
timev.h
timev.rb
trace_point.rb
transcode.c
transcode_data.h
universal_parser.c Remove uneeded Universal Parser properties 15 hours ago
util.c
variable.c Do not show an anonymous class as a receiver 6 days ago
variable.h
vcpkg.json
version.c
version.h
vm.c Do not include a backtick in error messages and backtraces 6 days ago
vm_args.c Avoid allocation when passing no keywords to anonymous kwrest methods 1 week ago
vm_backtrace.c Do not show an anonymous class as a receiver 6 days ago
vm_callinfo.h
vm_core.h Show actual imemo type when unexpected type 2 weeks ago
vm_debug.h
vm_dump.c
vm_eval.c Do not include a backtick in error messages and backtraces 6 days ago
vm_exec.c
vm_exec.h
vm_insnhelper.c YJIT: Prefer an overloaded cme if available (#9913) 1 week ago
vm_insnhelper.h
vm_method.c Do not include a backtick in error messages and backtraces 6 days ago
vm_opts.h
vm_sync.c
vm_sync.h
vm_trace.c Do not include a backtick in error messages and backtraces 6 days ago
vsnprintf.c
warning.rb
weakmap.c Remove duplicated include in weakmap.c 6 days ago
yjit.c YJIT: Pass nil to anonymous kwrest when empty (#9972) 5 days ago
yjit.h
yjit.rb YJIT: Remove unused counters 4 days ago

README.md

Actions Status: MinGW Actions Status: RJIT Actions Status: Ubuntu Actions Status: Windows AppVeyor status Travis Status

What is Ruby?

Ruby is an interpreted object-oriented programming language often used for web development. It also offers many scripting features to process plain text and serialized files, or manage system tasks. It is simple, straightforward, and extensible.

Features of Ruby

  • Simple Syntax
  • Normal Object-oriented Features (e.g. class, method calls)
  • Advanced Object-oriented Features (e.g. mix-in, singleton-method)
  • Operator Overloading
  • Exception Handling
  • Iterators and Closures
  • Garbage Collection
  • Dynamic Loading of Object Files (on some architectures)
  • Highly Portable (works on many Unix-like/POSIX compatible platforms as well as Windows, macOS, etc.) cf. https://docs.ruby-lang.org/en/master/maintainers_md.html#label-Platform+Maintainers

How to get Ruby

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

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

You can download release packages and the snapshot of the repository. If you want to download whole versions of Ruby, please visit https://www.ruby-lang.org/en/downloads/releases/.

Download with Git

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

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

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

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

You may also want to use https://git.ruby-lang.org/ruby.git (actual master of Ruby source) if you are a committer.

How to build

See Building Ruby

Ruby home page

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

Documentation

Mailing list

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

join

in the mail subject (not body) to the address ruby-talk-request@ml.ruby-lang.org.

Copying

See the file COPYING.

Feedback

Questions about the Ruby language can be asked on the Ruby-Talk mailing list or on websites like https://stackoverflow.com.

Bugs should be reported at https://bugs.ruby-lang.org. Read "Reporting Issues" for more information.

Contributing

See "Contributing to Ruby", which includes setup and build instructions.

The Author

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

matz@ruby-lang.org