2153 Commits
Author SHA1 Message Date
Nobuyoshi Nakada 9aea6bb2f1 [DOC] Exclude require in RubyGems not to override the original
Fix ruby/rdoc#1592.
2026-09-21 09:20:16 -07:00
Mike Dalessio e6520de344 [Bug #21792] Build rubyspec-capiext only when excuting test-spec
rubyspec-capiext is only needed for running specs, not for building or
installing Ruby.
2025-12-20 22:24:52 +09:00
Soutaro Matsumoto 81ad407475 Fix rbs test failure caused by minitest-6 (#15643)
* Fix rbs test failure caused by minitest6
* Bundle minitest-6.0.0
2025-12-19 02:43:58 +00:00
Alan Wu 029a48176c JITs: Drop cargo and use just rustc for release combo build
So we don't expose builders to network flakiness which cannot be worked
around using cargo's --offline flag.
2025-12-10 16:35:00 -05:00
Nobuyoshi Nakada 0be626e755 Win32: Clean timestamp directory for platform 2025-12-02 09:55:01 +09:00
Stan Lo 4cd6661e18 Reorganize page documentations (#15154)
Re-organize page docs
2025-11-27 20:12:24 +00:00
Nobuyoshi Nakada aebd391f9c Clean prism directory 2025-11-27 18:47:59 +09:00
Nobuyoshi Nakada d4e1f9e1b8 Win: quote equal sign in command line
`cmd.exe` splits the command line also by equal signs, not only by
space characters.
2025-11-21 17:34:03 +09:00
Nobuyoshi Nakada 339c1731b2 Revert "[Bug #21697] Keep revision.h outside VCS"
This reverts commit 8986115e0a.
`RELEASE_DATE` including `YEAR`, `MONTH`, `DAY` are mandatory, while
`REVISION` is not.
2025-11-19 16:41:04 +09:00
Nobuyoshi Nakada 8986115e0a [Bug #21697] Keep revision.h outside VCS 2025-11-19 16:19:51 +09:00
Mari Imaizumi 47e3aff930 Adapt to Unicode directory changes
https://www.unicode.org/Public/emoji/ReadMe.txt

> This directory contains data files for versions 1.0 to 16.0 of Unicode Emoji.
> Starting with Unicode 17.0.0, the data files for Unicode Emoji are published in
> https://www.unicode.org/Public/<version>/emoji/
> together with the related files in
> https://www.unicode.org/Public/<version>/ucd/emoji/
2025-11-14 12:27:36 +09:00
Mari Imaizumi cb3bc8ae3f [Feature #21275] Bump Unicode version to 17.0.0 2025-11-14 12:27:36 +09:00
Nobuyoshi Nakada 26fc938b9f [DOC] Sort undocumented items by locations 2025-11-09 22:11:40 +09:00
Satoshi Tagomori aaa1234702 update referenced filenames from namespace to box 2025-11-07 13:14:54 +09:00
Takashi Kokubun a48592a754 Let test-tool accept $(TESTS) like test-all does 2025-10-08 14:53:12 -07:00
Nobuyoshi Nakada 43392afb12 ripper: Fix dependency for generated ripper sources
Missed at c89f519170.
2025-09-28 22:15:35 +09:00
Nobuyoshi Nakada a6a5fe3222 Suppress verification messages
`log.showSignature` configuration and `--no-show-signature` option was
added at git 2.10.0.
2025-09-16 20:28:37 +09:00
Nobuyoshi Nakada a2849239db Expect git -C <path> to work
This option is available since git 1.8.5 that was released in 2013.
2025-09-16 20:28:37 +09:00
Aiden Fox Ivey cd85fe5a87 ZJIT: Add support for stats_allocator
* Using the shared jit crate, support for a single global_allocator can
function
* Solves --zjit-mem-size
2025-09-11 21:51:47 -07:00
Takashi Kokubun 4f030951f2 ZJIT: Invalidate local variables on EP escape (#14448) 2025-09-05 11:26:01 -07:00
Nobuyoshi Nakada 5851e649f5 Fix dependency of unicode_normalize/tables.rb when no baseruby 2025-08-25 21:53:20 +09:00
Nobuyoshi Nakada d0d7f55005 Gererate prism source files dependencies from template.rb
Update included file list automatically.
2025-08-19 11:55:23 +09:00
Nobuyoshi Nakada 3c1244ab83 Define targets for packages also in common.mk 2025-08-18 11:03:07 +09:00
Nobuyoshi Nakada 90cb2bb871 Gererate prism source files dependencies from template.rb 2025-08-18 01:01:31 +09:00
Nobuyoshi Nakada 504b963762 Fix dependencies of generated prism sources for NMake
The VPATH rule of NMake is different from others.  Abandon using
them in the rules for the generated source, locate them in the top
source directory, as well as the generated library files of prism.
2025-08-18 01:01:31 +09:00
Nobuyoshi Nakada e2aeb7d977 Use $(SRC_FILE) and $(OS_DEST_FILE)
NMake combines VPATH and stem with a backslash.  The resulting source
name is embedded verbatim, backslash included, into the generated file
using the `#line` pragma (e.g., "src\gc.rb").  This causes the warning
"C4129: Unrecognized character escape sequence".
2025-08-12 18:54:23 +09:00
Nobuyoshi Nakada 401932c18f NMake needs caret to escape a hash sign 2025-08-12 18:19:09 +09:00
Nobuyoshi Nakada 6b2d9ed2a5 Handle preperly comments in middle of lines in gems/bundled_gems 2025-08-12 16:04:57 +09:00
Nobuyoshi Nakada 01fafcca90 [DOC] Fix rdoc coverages for rdoc-srcdir 2025-08-04 02:21:22 +09:00
Takashi Kokubun 2cd10de330 ZJIT: Prepare for sharing JIT hooks with ZJIT (#14044) 2025-07-30 10:11:10 -07:00
Nobuyoshi Nakada fb6f255028 Rename builtin_binary.inc as .rbbin
Distinguish between platform-dependent ".rbbin" and platform-
independent ".inc" files.
2025-07-26 20:19:55 +09:00
Hiroshi SHIBATA be7b1164e6 Split autogenerated dependency to depend file from common.mk 2025-07-25 19:50:06 +09:00
Nobuyoshi Nakada 199861424e Flush out-of-date gems at extracting bundled gems 2025-07-25 17:06:48 +09:00
Samuel WilliamsandSamuel Williams 64f508ade8 Support cause: in Thread#raise and Fiber#raise. (#13967)
* Add support for `cause:` argument to `Fiber#raise` and `Thread#raise`.

The implementation behaviour is consistent with `Kernel#raise` and
`Exception#initialize` methods, allowing the `cause:` argument to be
passed to `Fiber#raise` and `Thread#raise`. This change ensures that
the `cause:` argument is handled correctly, providing a more consistent
and expected behavior when raising exceptions in fibers and threads.

[Feature #21360]

* Shared specs for Fiber/Thread/Kernel raise.

---------

Co-authored-by: Samuel Williams <samuel.williams@shopify.com>
2025-07-24 14:45:43 +12:00
Peter Zhu 2bcb155b49 Convert global symbol table to concurrent set 2025-07-21 10:58:30 -04:00
Nobuyoshi Nakada dedf9f5f62 Suppress gcc 15 unterminated-string-initialization warnings 2025-07-16 18:48:35 +09:00
Hiroshi SHIBATA b67e10257c pathname.rbinc conflicts with lib/pathname.rb in our test suite.
We can use `pathname.rb` after merging `lib/pathname.rb` to `pathname_builtin.rb`.
2025-07-15 15:59:11 +09:00
Hiroshi SHIBATA 8794406583 Move builtin methods to pathname.rbinc from lib/pathname.rb 2025-07-15 11:17:51 +09:00
Hiroshi SHIBATA 98ea78f347 Make Pathname to embedded class 2025-07-15 11:17:51 +09:00
Jeremy Evans 0b23a8db60 Update dependencies for addition of set.h to public headers 2025-07-11 15:24:23 +09:00
Nobuyoshi Nakada bec1ff625b Sort COMMONOBJS alphabetically 2025-07-10 15:45:27 +09:00
Takashi Kokubun f5085c70f2 ZJIT: Mark profiled objects when marking ISEQ (#13784) 2025-07-09 16:03:23 -07:00
Jean Boussier 0bb44f291e Rename ractor_safe_set into concurrent_set
There's nothing ractor related in them, and the classic terminology
for these sort of data structures is `concurrent-*`, e.g.
concurrent hash.
2025-07-07 15:12:39 +02:00
Luke Gruber 4f4408e989 Get transcoding to work across ractors by locking certain operations
Ex: `str.encode` and `str.encode!` work across ractors now.

The global table `transcoder_table` needs a lock around each st_lookup/st_insert, and it's a two-level
table so the second level also needs to be locked around insertion/deletion. In addition to this, the
transcoder entries (values in the second-level hash table) need to be locked around retrieving them and
loading them as they are loaded lazily.

The transcoding objects (`Encoding::Converter`) can't be made shareable, so their operations don't need to be locked.
2025-07-03 13:20:34 -07:00
David Rodríguez f679202a0f Remove old bundle.rb script usage 2025-07-03 13:43:00 +09:00
Peter Zhu d9b2d89976 Extract Ractor safe table used for frozen strings
This commit extracts the Ractor safe table used for frozen strings into
ractor_safe_table.c, which will allow it to be used elsewhere, including
for the global symbol table.
2025-06-27 09:23:14 -04:00
Jean Boussier 5bcc639b34 Disallow forking from non-main ractor
[Bug #17516]

`fork(2)` only leave the calling thread alive in the child.
Because of this forking from the non-main ractor can easily
leave the VM in a corrupted state.

It may be possible in the future to carefully allow forking from non-main
Ractor, but shot term it's preferable to add this restriction.
2025-06-24 15:10:40 +01:00
Nobuyoshi Nakada aaa956e8f1 Now irb is a bundled gem and needs rubygems 2025-06-18 20:26:02 +09:00
Luke Gruber 97994c77fb Only use regex internal reg_cache when in main ractor
Using this `reg_cache` is racy across ractors, so don't use it when in a
ractor. Also, its use across ractors can cause a regular expression created
in 1 ractor to be used in another ractor (an isolation bug).
2025-06-12 13:13:18 -07:00
Jean Boussier 3abdd4241f Turn rb_classext_t.fields into a T_IMEMO/class_fields
This behave almost exactly as a T_OBJECT, the layout is entirely
compatible.

This aims to solve two problems.

First, it solves the problem of namspaced classes having
a single `shape_id`. Now each namespaced classext
has an object that can hold the namespace specific
shape.

Second, it open the door to later make class instance variable
writes atomics, hence be able to read class variables
without locking the VM.
In the future, in multi-ractor mode, we can do the write
on a copy of the `fields_obj` and then atomically swap it.

Considerations:

  - Right now the `RClass` shape_id is always synchronized,
    but with namespace we should likely mark classes that have
    multiple namespace with a specific shape flag.
2025-06-12 07:58:16 +02:00