Commit graph

2067 commits

Author SHA1 Message Date
Nobuyoshi Nakada
4a67ef09cc
[Feature #21116] Extract RJIT as a third-party gem 2025-02-13 18:01:03 +09:00
Jean Boussier
f32d5071b7 Elide string allocation when using String#gsub in MAP mode
If the provided Hash doesn't have a default proc, we know for
sure that we'll never call into user provided code, hence the
string we allocate to access the Hash can't possibly escape.

So we don't actually have to allocate it, we can use a fake_str,
AKA a stack allocated string.

```
compare-ruby: ruby 3.5.0dev (2025-02-10T13:47:44Z master 3fb455adab) +PRISM [arm64-darwin23]
built-ruby: ruby 3.5.0dev (2025-02-10T17:09:52Z opt-gsub-alloc ea5c28958f) +PRISM [arm64-darwin23]
warming up....

|                 |compare-ruby|built-ruby|
|:----------------|-----------:|---------:|
|escape           |      3.374k|    3.722k|
|                 |           -|     1.10x|
|escape_bin       |      5.469k|    6.587k|
|                 |           -|     1.20x|
|escape_utf8      |      3.465k|    3.734k|
|                 |           -|     1.08x|
|escape_utf8_bin  |      5.752k|    7.283k|
|                 |           -|     1.27x|
```
2025-02-12 10:23:50 +01:00
Hiroshi SHIBATA
801885c7f9
Move bundled_gems_spec-run task to exam because we repeatedly test bundled gems for debugging 2025-01-27 14:50:57 +09:00
Hiroshi SHIBATA
47723bb591 Added tracer for irb test 2025-01-24 15:46:46 +09:00
Peter Zhu
7ed08c4fd3 Fix memory leak in rb_gc_vm_weak_table_foreach
When deleting from the generic ivar table, we need to free the gen_ivtbl
otherwise we will have a memory leak.
2025-01-23 10:24:35 -05:00
Nobuyoshi Nakada
ba44e92573 ext/json no longer uses ragel 2025-01-20 21:37:20 +09:00
Nobuyoshi Nakada
d399e0c2b6
Move probes.h to all-incs
It is platform dependent, should not generate by default.
2025-01-15 22:11:47 +09:00
Hiroshi SHIBATA
667e938f1d rdoc-srcdir can refer srcdir by itself 2025-01-15 16:52:56 +09:00
Hiroshi SHIBATA
c6923278d8 Fixed missing kpeg issue with test-bundled-gems 2025-01-15 16:52:56 +09:00
Hiroshi SHIBATA
86575e243e Use rdoc provided by bundled gems for generating ruby documentation 2025-01-15 16:52:56 +09:00
ydah
ccb4ba45ed Use LRAMA instead of YACC 2025-01-14 17:20:02 +09:00
Nobuyoshi Nakada
2e38b3effb
Update probes.h by incs 2025-01-13 09:57:01 +09:00
Hiroshi SHIBATA
fcecef7752 Added logger dependency for Bundler's example 2025-01-10 10:19:39 +09:00
Nobuyoshi Nakada
7962f32b70
Fix hello when transforming program names 2024-12-27 10:29:34 +09:00
Nobuyoshi Nakada
970513f677
Sort undocumented entry list [ci skip] 2024-12-25 12:04:32 +09:00
Nobuyoshi Nakada
f7ce62cc5b
Add hello 2024-12-22 23:14:03 +09:00
Nobuyoshi Nakada
4fb5d746ce
Split modular-gc into build and installation 2024-12-22 22:10:26 +09:00
Hiroshi SHIBATA
6a1aaf3679
Separated load path for test-bundler tasks for Windows 2024-12-12 15:10:21 +09:00
Hiroshi SHIBATA
f43e04ce09 Hide pending results of turbo_tests 2024-12-12 14:43:07 +09:00
Hiroshi SHIBATA
1967ae20b9 Use patched version of turbo_tests 2024-12-12 14:43:07 +09:00
Hiroshi SHIBATA
91f6c370af Use turbo_tests instead of parallel_tests 2024-12-12 14:43:07 +09:00
Nobuyoshi Nakada
f12e2622c1 Split system dependent commands to clean modular-gc 2024-12-10 12:31:47 +09:00
Peter Zhu
cfc2b21a05 Clean all modular GCs
We should run `make clean` or `make distclean` on each of the GC directories.
2024-12-09 16:35:21 -05:00
Peter Zhu
5d4242fa81 Only delete gc directory if empty
If building in the source directory, this will delete the gc directory.
2024-12-09 16:35:21 -05:00
Peter Zhu
88d49628dd Don't delete .gc directory
We build in the gc directory since commit d057503252,
so we don't need to remove the .gc directory.
2024-12-09 16:35:21 -05:00
Matt Valentine-House
ffb26a53d1 Add Modular GC (default, MMTk) builds to CI 2024-12-06 09:48:30 +00:00
Randy Stauner
b021f6f8a7
Use symbol.h in vm.c to get macro for faster ID to sym (#12272)
The macro provided by symbol.h uses STATIC_ID2SYM
when it can which speeds up methods that declare keyword args.

Co-authored-by: Alan Wu <XrXr@users.noreply.github.com>
Co-authored-by: Takashi Kokubun (k0kubun) <takashikkbn@gmail.com>
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
2024-12-05 17:51:32 -05:00
Peter Zhu
ce1ad1b816 Standardize on the name "modular GC"
We have name fragmentation for this feature, including "shared GC",
"modular GC", and "external GC". This commit standardizes the feature
name to "modular GC" and the implementation to "GC library".
2024-12-05 10:33:26 -05:00
Hiroshi SHIBATA
56576b6cce Removed needless RSpec option 2024-12-04 13:09:40 +09:00
Hiroshi SHIBATA
b532662d2d Use same RSPECOPTS for test-bundler and test-bundler-parallel 2024-12-04 13:09:40 +09:00
Nobuyoshi Nakada
239c30798a Simplify test-bundler-parallel
Get rid of repeated exec XRUBY recursively.
2024-12-04 13:09:40 +09:00
Hiroshi SHIBATA
4e382c285f Lock json-schema-5.1.0 2024-12-03 09:53:17 +09:00
Nobuyoshi Nakada
1df52e097b
yasmdata.rb is no longer generated for years [ci skip] 2024-12-02 09:07:25 +09:00
Nobuyoshi Nakada
c321cf0e95
Revert useless VPATH for NMAKE [ci skip] 2024-11-30 23:57:42 +09:00
Nobuyoshi Nakada
fdf60d735c
Win32: Fix dependencies with VPATH on nmake 2024-11-30 15:24:30 +09:00
Hiroshi SHIBATA
26aebdb6d6 Added --env option to mspec for test-bundled-gems 2024-11-27 16:45:10 +09:00
Hiroshi SHIBATA
671e6eb644 Run only specified bundled gems with BUNDLED_GEMS 2024-11-27 16:45:10 +09:00
Nobuyoshi Nakada
9508cf86de Clear shared_gc directory 2024-11-26 19:06:21 +09:00
Nobuyoshi Nakada
d057503252 Use extmk.rb to configure shared GC
Since mkmf.rb is for extension libraries after installation, it cannot
work alone in build directory and needs to run from extmk.rb.
2024-11-26 19:06:21 +09:00
Nobuyoshi Nakada
c5d31cb96b Shell dependent command should be in Makefile.in
As common.mk is used by nmake.exe, the commands there need to be
accepted also by cmd.exe.
2024-11-26 19:06:21 +09:00
Matt Valentine-House
d61933e503 Use extconf to build external GC modules
Co-Authored-By: Peter Zhu <peter@peterzhu.ca>
2024-11-25 13:05:23 +00:00
Kunshan Wang
8ae7c22972 Annotate anonymous mmap
Use PR_SET_VMA_ANON_NAME to set human-readable names for anonymous
virtual memory areas mapped by `mmap()` when compiled and run on Linux
5.17 or higher.  This makes it convenient for developers to debug mmap.
2024-11-21 13:48:05 -05:00
Samuel Williams
3c0b09ac9e
Allow io_buffer_memmove to release the GVL for large buffers. (#12021)
[Feature #20902]
2024-11-20 21:27:16 +13:00
Samuel Williams
9c268302bf
Introduce Fiber::Scheduler#blocking_operation_wait. (#12016)
Redirect `rb_nogvl` blocking operations to the fiber scheduler if possible
to prevent stalling the event loop.

[Feature #20876]
2024-11-20 19:40:17 +13:00
Hiroshi SHIBATA
07bf784066 Don't need to call test-bundled-gems-fetch for bundled_gems_spec-run 2024-11-18 20:46:07 +09:00
Hiroshi SHIBATA
2dc8c48e09 Need to install all of dependency for bundler test suite 2024-11-18 20:46:07 +09:00
Hiroshi SHIBATA
73614b6efe Added PREPARE_BUNDLED_GEMS before bundled_gems_spec-run 2024-11-18 20:46:07 +09:00
Hiroshi SHIBATA
0c8bd35ba4 Install zeitwerk at test-bundled-gems-prepare 2024-11-18 20:46:07 +09:00
Hiroshi SHIBATA
ce580f4ae5 Fixed dependency of make test-bundled-gems 2024-11-18 20:46:07 +09:00
Hiroshi SHIBATA
1a416920f1 Load required helpers from bundler examples and invoke bundled_gems_spec.rb at test-bundled-gems 2024-11-18 20:46:07 +09:00