2152 Commits

Author SHA1 Message Date
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 8986115e0a2a989f2b2ea5945f02c7a13989d640.
`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 c89f5191706549bb1d7e0277fc07a413714ddecc.
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 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
David Rodríguez
9b09c68032 Simplify make test-bundler 2025-06-11 09:38:56 +09:00