The Ruby Programming Language https://www.ruby-lang.org/
  • Ruby 57.5%
  • C 29.4%
  • Rust 7.7%
  • C++ 2.6%
  • Yacc 0.9%
  • Other 1.8%
Find a file
2026-09-11 12:41:32 -04:00
.github .github/labeler.yml: Skip labeling "jit" for dependabot PRs 2026-09-09 15:20:41 -07:00
basictest Ensure test suite is compatible with --frozen-string-literal 2024-03-14 17:56:15 +01:00
benchmark YJIT: Inline Struct member writes in gen_struct_aset (GH-17477) 2026-09-11 12:41:32 -04:00
bin Resync prism delete bin/dot 2023-11-14 16:22:03 -05:00
bootstraptest YJIT: Inline Struct member writes in gen_struct_aset (GH-17477) 2026-09-11 12:41:32 -04:00
ccan
coroutine coroutine: do not write to the target after switching away 2026-08-17 04:57:21 +09:00
coverage Drop the stale bundled simplecov TODO 2026-08-31 14:00:09 +09:00
cygwin Remove obsolete -mno-cygwin flag 2026-07-16 09:47:27 +09:00
defs Refactor core_hash_merge_ptr and core_hash_merge_kw 2026-08-24 09:12:31 +02:00
doc Update doc/language/ractor.md and bootstraptest for class/module ownership 2026-09-10 16:02:03 +09:00
enc Fix max_output of the CP50220 encoder 2026-09-08 15:07:52 +09:00
ext [ruby/erb] escape.c: Fix UB in find_next_match_neon 2026-09-10 06:37:58 +00:00
gc Show object type when reaching rb_bug() due to VERIFY_FREE_SIZE 2026-09-11 11:17:46 -04:00
gems Update bundled gems list as of 2026-09-11 2026-09-11 06:58:20 +00:00
include Add and use rb_gc_update_moved(VALUE *obj) which conditionally assigns 2026-09-08 21:43:48 -04:00
internal Ractor: move a singleton class's ownership with its object 2026-09-10 16:02:03 +09:00
jit YJIT: Fix unused_unsafe warning in StatsAlloc 2025-12-05 15:49:25 -05:00
lib [ruby/erb] Only convert with to_s when the argument is not a String 2026-09-11 12:58:01 +00:00
libexec [ruby/erb] Fix -h CLI option 2026-07-20 08:22:03 +00:00
man [DOC] Fix man page markup for groff 1.24 2026-07-10 00:58:00 +00:00
misc Increase IMEMO_MASK by one bit 2026-09-03 08:38:46 +09:00
missing [Misc #22206] Generate dependencies without compiler builds 2026-07-23 00:04:47 +09:00
prism [ruby/prism] Avoid quadratic value-expression check on and/or chains 2026-09-05 09:18:25 +00:00
sample Fix condition, 0 is truethy in Ruby [ci skip] 2026-04-03 13:08:06 +09:00
spec Module#method_defined? optional arguments to also match private method 2026-09-11 15:50:19 +01:00
template Link ruby with static extensions only through exts 2026-09-09 06:55:14 +09:00
test [ruby/erb] Only convert with to_s when the argument is not a String 2026-09-11 12:58:01 +00:00
tool Keep the message of a Timeout::Error raised in a test 2026-09-11 11:59:54 +09:00
wasm wasm: increase the default Asyncify buffer size 2025-05-03 01:36:13 +08:00
win32 Win32: Add missing mklink internal command of cmd.exe 2026-09-09 20:43:05 +09:00
yjit YJIT: Inline Struct member writes in gen_struct_aset (GH-17477) 2026-09-11 12:41:32 -04:00
zjit ZJIT: s/side_exit_size/side_exit_size_bytes/ for consistency 2026-09-11 13:33:22 +00:00
.dir-locals.el emacs mode addition 2020-02-06 11:46:51 +09:00
.document [DOC] Only document .c in subfolders 2026-07-22 12:37:58 +09:00
.editorconfig
.gdbinit Define IMEMO_MASK from FL_USER bits 2026-09-03 08:38:46 +09:00
.git-blame-ignore-revs Ignore miss-and-revived commits [ci skip] 2026-09-09 20:42:02 +09:00
.gitattributes Tell GitHub that *.inc files are autogenerated [ci skip] 2026-08-02 06:56:11 +09:00
.gitignore Update the ignored simplecov report artifacts 2026-08-31 14:00:09 +09:00
.indent.pro
.mailmap Parenthesized SVN IDs in .mailmap look too verbose [ci skip] 2024-04-12 18:22:04 +09:00
.rdoc_options [DOC] Simplify doc setup (#16393) 2026-03-15 12:47:51 +00:00
.rspec_parallel
aclocal.m4
addr2line.c Support cross-CU DW_FORM_ref_addr in addr2line's abstract_origin 2026-07-22 14:50:35 -04:00
addr2line.h Dump backtraces to an arbitrary stream 2023-09-25 22:57:28 +09:00
array.c Fetch the execution context once in Array#each (#18610) 2026-09-03 17:08:20 -07:00
array.rb ZJIT: Rename rb_jit_* functions to rb_builtin_* (#18039) 2026-07-23 15:32:57 -04:00
ast.c Add accessors for ISEQ_BODY(iseq)->variable fields 2026-08-24 14:25:12 -04:00
ast.rb Add Thread::Backtrace::Location#syntax_tree 2026-08-07 20:56:33 +09:00
autogen.sh Fix typo in comment regarding symlink flags in autogen.sh 2025-08-07 01:06:50 +09:00
bignum.c Remove functions nothing calls 2026-09-11 11:42:08 +09:00
box.c Add and use rb_gc_update_moved(VALUE *obj) which conditionally assigns 2026-09-08 21:43:48 -04:00
BSDL
builtin.c Fix a stale comment in rb_define_gem_modules 2026-07-21 11:49:03 +09:00
builtin.h [Bug #21881] Separate the master and root box 2026-05-10 09:38:45 +09:00
Cargo.lock ZJIT: Test rb_profile_frames from signal handler (#17194) 2026-07-01 09:59:27 -07:00
Cargo.toml YJIT: ZJIT: Use opt-level=1 on dev builds to avoid SystemStackError 2026-04-02 20:17:13 -04:00
class.c Ractor: move a singleton class's ownership with its object 2026-09-10 16:02:03 +09:00
common.mk Link ruby with static extensions only through exts 2026-09-09 06:55:14 +09:00
compar.c Improve comparison error message. 2026-03-06 14:02:00 +09:00
compile.c Revert "Win32: Add missing mklink internal command of cmd.exe" 2026-09-09 20:40:40 +09:00
complex.c Fix unused-but-set-global warnings in clang-23 2026-06-25 15:40:27 +09:00
concurrent_set.c mark internal cross-Ractor structures as shareable 2026-07-03 23:50:37 +09:00
configure.ac Link ruby with static extensions only through exts 2026-09-09 06:55:14 +09:00
constant.h
cont.c Add and use rb_gc_update_moved(VALUE *obj) which conditionally assigns 2026-09-08 21:43:48 -04:00
CONTRIBUTING.md [DOC] Fix contributing link 2025-04-09 19:13:58 +09:00
COPYING [DOC] Cross-links between Japanese and English pages (#15705) 2025-12-23 20:46:57 -06:00
COPYING.ja [DOC] Cross-links between Japanese and English pages (#15705) 2025-12-23 20:46:57 -06:00
darray.h Make ruby_xfree_sized and ruby_xrealloc_sized public 2026-04-01 08:10:07 +01:00
debug.c thread: keep context switches off the scheduler lock 2026-08-24 02:52:02 +09:00
debug_counter.c
debug_counter.h Use IMEMO to store cdhash 2026-05-18 08:58:32 +03:00
depend Regenerate build dependencies after revision changes 2026-08-29 12:15:34 +09:00
dir.c [DOC] Fix Dir scan documentation 2026-07-27 09:24:51 -04:00
dir.rb [DOC] Restore glob documentation lost in consolidation 2026-07-10 07:15:29 +09:00
dln.c Remove Interix support 2026-07-17 15:13:13 +09:00
dln.h namespace on read 2025-05-11 23:32:50 +09:00
dln_find.c dln_find: Treat backslash as a separator when joining on DOSISH 2026-07-23 14:56:34 +09:00
dmydln.c namespace on read 2025-05-11 23:32:50 +09:00
dmyenc.c
dmyext.c
encindex.h
encoding.c String#tr: take a Hash for multi-character replacements 2026-09-03 13:11:59 +02:00
enum.c [DOC] nodoc various classes under Enumerator 2026-05-19 23:08:23 +02:00
enumerator.c Get rid of rb_hash_new_with_size 2026-08-16 13:50:22 +02:00
error.c Let only the first thread write a bug report 2026-09-09 14:01:07 +09:00
eval.c Ractor: restrict class/module modification to the creator Ractor 2026-09-10 16:02:03 +09:00
eval_error.c Righ-size more hashes 2026-08-23 11:50:40 +02:00
eval_intern.h ZJIT: Keep surviving JIT frame across longjmp 2026-07-21 14:14:32 -04:00
eval_jump.c [Bug #22191] Report EXIT handler exceptions after END blocks 2026-07-13 04:22:19 +09:00
file.c [DOC] Harmonize symlink? methods 2026-09-09 09:33:01 +09:00
gc.c Initialize as.extended before the fields object is allocated 2026-09-11 12:19:37 +09:00
gc.rb [DOC] Update docs for GC.stat 2026-08-04 08:49:15 -04:00
gem_prelude.rb Do not consume BUNDLER_SETUP outside the main box 2026-08-06 16:29:37 +09:00
golf_prelude.rb
goruby.c Initialize goruby only when executing 2024-09-08 23:40:18 +09:00
GPL
hash.c Explicitly cast to unsigned long to fix the sign-compare warning 2026-08-31 09:54:35 +09:00
hash.rb [DOC] Fix link in Hash 2026-01-31 17:45:03 -05:00
hrtime.h use of stdckdint.h 2024-04-27 21:55:28 +09:00
id_table.c Add and use rb_gc_update_moved(VALUE *obj) which conditionally assigns 2026-09-08 21:43:48 -04:00
id_table.h Combine items, keys, collision_table in rb_id_table 2026-08-27 20:57:34 +09:00
imemo.c Add and use rb_gc_update_moved(VALUE *obj) which conditionally assigns 2026-09-08 21:43:48 -04:00
inits.c Make IO::Buffer MemoryView ready (#17965) 2026-08-25 05:50:39 +09:00
insns.def Fix the intern VM instruction to be leaf=false (also in YJIT, ZJIT) 2026-09-10 15:43:31 -04:00
internal.h Set the long path bit for embedded interpreters too 2026-08-19 16:31:10 +09:00
io.c Remove functions nothing calls 2026-09-11 11:42:08 +09:00
io.rb
io_buffer.c [Bug #22301] Check IO Buffer is writeable before writing 2026-09-11 11:52:30 +01:00
iseq.c Add and use rb_gc_update_moved(VALUE *obj) which conditionally assigns 2026-09-08 21:43:48 -04:00
iseq.h Support embedded lvar_states 2026-09-01 20:19:40 +09:00
jit.c YJIT: ZJIT: For init-time mmap failure, use abort() instead of rb_bug() 2026-09-09 17:25:16 -04:00
jit_hook.rb Enable ZJIT jit hooks for with_jit builtins 2026-02-09 19:28:04 -05:00
jit_undef.rb ZJIT: Prepare for sharing JIT hooks with ZJIT (#14044) 2025-07-30 10:11:10 -07:00
kernel.rb [DOC] Doc for frozen objects 2026-06-09 15:11:05 +09:00
KNOWNBUGS.rb
LEGAL Update ext/json dependency file 2026-06-16 10:28:33 +02:00
lex.c.blt Use gperf 3.1 to generate ANSI-C code 2024-06-24 23:43:45 +09:00
load.c Fix memory leak reported in TestRequire#test_loading_fifo_threading_raise 2026-09-09 13:41:38 +09:00
loadpath.c
localeinit.c Revert "mac: Fallback empty codeset to UTF-8" 2025-09-05 14:16:49 +09:00
main.c Make wrapper of main for wasm more generic 2025-03-16 17:33:58 +09:00
marshal.c Check struct size when a user class relabels a loaded struct 2026-09-08 11:54:07 +09:00
marshal.rb
math.c [DOC] Fix incorrect example values for Math.expm1 2026-07-24 10:08:22 +09:00
memory_view.c [Feature #22215] Remove vm_core dependency from gc header 2026-08-07 09:59:15 +09:00
method.h [Bug #22197] Record the definition module on the method definition 2026-08-06 13:43:21 +02:00
mini_builtin.c [Bug #21881] Separate the master and root box 2026-05-10 09:38:45 +09:00
miniinit.c Gather code for builtin loading to miniinit.c 2024-09-08 23:16:46 +09:00
NEWS.md Module#method_defined? optional arguments to also match private method 2026-09-11 15:50:19 +01:00
nilclass.rb Move more NilClass methods to ruby 2025-06-12 09:30:09 +02:00
node.c [Feature #22215] Remove vm_core dependency from gc header 2026-08-07 09:59:15 +09:00
node.h Make node line macros inline functions 2025-01-30 18:19:53 +09:00
node_dump.c Add NODE SCLASS locations 2025-08-30 22:41:23 +09:00
numeric.c Fix Integer#/ documentation for floor semantics 2026-08-11 08:36:43 +09:00
numeric.rb [DOC] Harmonize #-@ methods 2025-12-15 17:28:35 -05:00
object.c Ractor: make freeze and set_temporary_name owner-only 2026-09-10 16:02:03 +09:00
pack.c [Feature #22185] Add alignment directives to pack templates 2026-07-15 22:38:32 +09:00
pack.rb [DOC] Move packed_data from rdoc to markdown 2026-05-31 17:32:47 +09:00
parse.y [Bug #22302] Emit a line event for a method's implicit nil return in parse.y 2026-09-10 23:42:44 +02:00
parser_bits.h [Misc #21690] Sync parser_bits.h from internal/bits.h 2025-12-11 18:42:07 +09:00
parser_node.h
parser_st.c Embed vm->static_ext_inits 2026-03-16 15:04:38 +01:00
parser_st.h [DOC] Fix typos in C comments 2026-07-23 12:08:25 +09:00
parser_value.h [Feature #19719] Universal Parser 2023-06-12 18:23:48 +09:00
pathname.c [DOC] Respond to review 2026-07-13 04:19:52 +09:00
pathname_builtin.rb [DOC] Harmonize symlink? methods 2026-09-09 09:33:01 +09:00
prelude.rb Restore irb to warning target 2026-01-15 17:20:34 +09:00
prism_compile.c Refactor core_hash_merge_ptr and core_hash_merge_kw 2026-08-24 09:12:31 +02:00
prism_compile.h Compute a source hash for prism as well 2026-08-06 13:20:23 +02:00
prism_init.c Move CRuby-specific prism files to top level 2023-09-28 09:44:16 -04:00
prism_xallocator.h [Bug #21868] Use ruby allocator for prism 2026-02-18 09:19:56 +01:00
probes.d Fix argument types 2026-07-07 20:59:49 +09:00
probes_helper.h Stop exporting symbols for MJIT 2023-03-06 21:59:23 -08:00
proc.c Reduce memory for proc objects 2026-08-24 09:13:41 +09:00
process.c [DOC] Process.clock_gettime: CLOCK_THREAD_CPUTIME_ID under M:N 2026-09-10 22:54:47 +09:00
ractor.c Remove functions nothing calls 2026-09-11 11:42:08 +09:00
ractor.rb Ractor: widen the Ractor id to 64 bits 2026-09-10 16:02:03 +09:00
ractor_core.h Ractor: record the creator Ractor of classes/modules 2026-09-10 16:02:03 +09:00
ractor_sync.c Ractor: widen the Ractor id to 64 bits 2026-09-10 16:02:03 +09:00
random.c Remove CryptGenRandom fallback 2026-07-17 13:26:25 +09:00
range.c ZJIT: Centralize shape setting for ZJIT GC fastpath 2026-08-07 16:31:14 -04:00
rational.c [Feature #22215] Remove vm_core dependency from gc header 2026-08-07 09:59:15 +09:00
re.c Ractor: name the courier machinery after the courier, not after move 2026-08-20 11:56:29 +09:00
README.ja.md [DOC] Cross-link between README pages 2025-12-04 13:58:26 -08:00
README.md [DOC] Cross-link between README pages 2025-12-04 13:58:26 -08:00
regcomp.c onig_reg_copy_body: fix copying of exact_end 2026-07-07 08:48:26 +02:00
regenc.c Remove a direct call of rb_raise in Onigmo 2026-01-12 20:24:56 +09:00
regenc.h [k-takata/Onigmo] Update copyright information 2026-01-12 20:01:42 +09:00
regerror.c Reject overflowed repeat/null-check IDs in huge regexps (#16801) 2026-04-29 11:09:24 +09:00
regexec.c [k-takata/Onigmo] Update copyright information 2026-01-12 20:01:42 +09:00
regint.h [k-takata/Onigmo] Update copyright information 2026-01-12 20:01:42 +09:00
regparse.c Fix unused-but-set-global warnings in clang-23 2026-06-25 15:40:27 +09:00
regparse.h [k-takata/Onigmo] Update copyright information 2026-01-12 20:01:42 +09:00
regsyntax.c
ruby-runner.c Do not overwrite GEM_PATH if already set 2025-02-10 18:04:25 +09:00
ruby.c [Feature #22215] Extract internal coverage API 2026-08-07 09:59:15 +09:00
ruby.rs ZJIT: Move jit.rs to ruby.rs and create a shared crate jit 2025-09-11 21:51:47 -07:00
ruby_assert.h internal/*.h: skip doxygen 2021-09-10 20:00:06 +09:00
ruby_atomic.h Better feature detection for malloc counter locks 2026-05-20 22:14:47 +01:00
ruby_parser.c Remove has_source_hash from iseq_body 2026-08-21 08:35:40 +09:00
rubyparser.h Compute a source hash of the program in parse.y 2026-08-06 13:20:23 +02:00
rubystub.c
scheduler.c Revert "Adjust indent [ci skip]" 2026-08-27 09:27:53 +09:00
set.c Add rb_ident_set_new internal function 2026-08-25 07:03:04 -07:00
shape.c Allow shapes to carry zero embedded capacity 2026-08-19 17:14:06 +01:00
shape.h [Feature #22215] Remove vm_core dependency from gc header 2026-08-07 09:59:15 +09:00
signal.c GC: per-Ractor local GC — VM (lock / roots / write barrier) 2026-08-07 16:27:53 +09:00
siphash.c Suppress gcc 15 unterminated-string-initialization warnings 2025-04-30 20:04:10 +09:00
siphash.h
sparc.c
sprintf.c sprintf.c: don't raise "too many arguments" errors when $DEBUG is set 2026-07-10 07:34:42 +02:00
st.c Fix GC crash during Hash#merge 2026-09-08 23:13:58 -04:00
strftime.c Remove unused or wrong conversions 2024-10-20 19:33:21 +09:00
string.c string.c: Fix String#tr edge cases and improve coverage 2026-09-11 08:38:39 +01:00
string.rb Define String#ascii_only? and #valid_encoding? in Ruby 2026-06-24 17:17:33 -04:00
struct.c struct.c: Strop reserving extra space for ivars 2026-09-06 09:22:55 +02:00
symbol.c Symbol.all_symbols needs the VM barrier 2026-09-09 19:08:54 -04:00
symbol.h Get rid of ID_JUNK 2025-07-28 12:22:42 +02:00
symbol.rb Symbol#to_s now returns a frozen string. 2026-07-10 10:02:00 +02:00
thread.c Remove the workqueue 2026-09-11 14:47:50 +09:00
thread_none.c Wait for terminating Ractors through the scheduler 2026-09-08 12:25:10 +09:00
thread_none.h Share one thread/ractor scheduler between POSIX and Windows 2026-08-29 04:04:48 +09:00
thread_pthread.c Remove functions nothing calls 2026-09-11 11:42:08 +09:00
thread_pthread.h Share one thread/ractor scheduler between POSIX and Windows 2026-08-29 04:04:48 +09:00
thread_sched.c Ractor: widen the Ractor id to 64 bits 2026-09-10 16:02:03 +09:00
thread_sched.h Wait for terminating Ractors through the scheduler 2026-09-08 12:25:10 +09:00
thread_sched_mn.c Do not report an interrupted M:N io wait as a timeout 2026-09-10 15:09:53 +09:00
thread_sync.c Add and use rb_gc_update_moved(VALUE *obj) which conditionally assigns 2026-09-08 21:43:48 -04:00
thread_sync.rb [DOC] Fix Thread::Mutex#unlock doc 2026-07-06 09:40:46 -07:00
thread_win32.c Win32: Define w32_mutex functions only if used 2026-09-10 13:31:12 +09:00
thread_win32.h Share one thread/ractor scheduler between POSIX and Windows 2026-08-29 04:04:48 +09:00
time.c Turn zone_str to the simple macro using zone_str_enc 2026-09-10 13:31:12 +09:00
timev.h
timev.rb [DOC] Fix typos and wording in Time RDoc (#16986) 2026-05-16 06:10:03 +09:00
trace_point.rb Make tracepoints with set_trace_func or TracePoint.new ractor local (#15468) 2025-12-16 14:06:55 -05:00
transcode.c Pass the buffer's size to ruby_xrealloc_sized, not the field distance 2026-08-31 02:21:31 +09:00
transcode_data.h
universal_parser.c Compute a source hash of the program in parse.y 2026-08-06 13:20:23 +02:00
util.c Use rb_ensure instead of guard objects for Dir.pwd 2026-02-19 17:39:44 -08:00
variable.c Remove functions nothing calls 2026-09-11 11:42:08 +09:00
variable.h imemo.c: embed the st_table inside rb_fields 2026-07-14 23:50:17 +02:00
vcpkg.json Bump the vcpkg builtin-baseline for the gmp msys2 404 2026-08-21 14:03:24 +09:00
version.c Fix length of ruby_description for modular GC 2026-07-26 09:37:20 -04:00
version.h
vm.c Remove the workqueue 2026-09-11 14:47:50 +09:00
vm_args.c Get rid of rb_hash_new_with_size 2026-08-16 13:50:22 +02:00
vm_backtrace.c Add and use rb_gc_update_moved(VALUE *obj) which conditionally assigns 2026-09-08 21:43:48 -04:00
vm_callinfo.h MMTK: Allow debug cc checks on EC-less GC threads 2026-08-19 17:14:06 +01:00
vm_core.h Remove the workqueue 2026-09-11 14:47:50 +09:00
vm_debug.h _RUBY_DEBUG_LOG usable anywhere 2025-12-10 10:23:37 +09:00
vm_dump.c Crash handler assumes box is present 2026-07-22 14:29:08 -04:00
vm_eval.c Don't record EP escape in JIT when not enabled 2026-08-27 11:25:39 +09:00
vm_exec.c ZJIT: Implement side exit stats (#14357) 2025-08-27 10:01:07 -07:00
vm_exec.h Bound GC and VM diagnostic strings 2026-07-15 13:28:39 +09:00
vm_insnhelper.c Remove functions nothing calls 2026-09-11 11:42:08 +09:00
vm_insnhelper.h Fix gdb rb_ps helper (#16896) 2026-05-08 11:27:05 -07:00
vm_method.c Module#method_defined? optional arguments to also match private method 2026-09-11 15:50:19 +01:00
vm_opts.h Remove unreferenced OPT_GLOBAL_METHOD_CACHE and OPT_UNIFY_ALL_COMBINATION 2026-07-15 09:42:05 +09:00
vm_sync.c Wait for terminating Ractors through the scheduler 2026-09-08 12:25:10 +09:00
vm_sync.h ObjectSpace.{dump,dump_all,dump_shapes} needs vm barrier. (#15569) 2025-12-17 12:17:30 -05:00
vm_trace.c Remove the workqueue 2026-09-11 14:47:50 +09:00
vsnprintf.c
warning.rb Kernel#warn: don't call Warning.warn unless the category is enabled 2024-06-12 20:57:31 +02:00
weakmap.c Add and use rb_gc_update_moved(VALUE *obj) which conditionally assigns 2026-09-08 21:43:48 -04:00
yjit.c Generate ISEQ_TRANSLATED with bindgen for YJIT 2026-09-09 09:57:01 -07:00
yjit.h JIT: Reduce jit_entry_calls/jit_exception_calls to 32 bits 2026-09-02 13:00:08 +09:00
yjit.rb YJIT: Fix not reading locals from cfp->ep after YJIT.enable and exceptional entry 2026-03-16 13:43:58 -04:00
zjit.c ZJIT: Add support for once instruction (#18617) 2026-09-09 14:41:36 +00:00
zjit.h JIT: Reduce jit_entry_calls/jit_exception_calls to 32 bits 2026-09-02 13:00:08 +09:00
zjit.rb ZJIT: s/side_exit_size/side_exit_size_bytes/ for consistency 2026-09-11 13:33:22 +00:00

Actions Status: MinGW Actions Status: Ubuntu Actions Status: Windows 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