summaryrefslogtreecommitdiff
path: root/common.mk
AgeCommit message (Collapse)Author
2025-09-18Use `ec->interrupt_mask` to prevent interrupts. [Backport #21610]Samuel Williams
Disallow pending interrupts to be checked during `FiberScheduler#unblock`. Ractors can send signals at any time, so the previous debug assertion can fail if a Ractor sends a signal. Co-authored-by: Luke Gruber <luke.gruber@shopify.com>
2025-09-12Explicitly use a ruby version for prism to parse the code asEarlopain
Prism can parse multiple versions of ruby. Because of that branch release managers are ok with simply bumping prism to its latest version. However, if no version is specified, it will parse as the latest known version, which can be ahead of the maintenance branch. So we need to explicitly pass a version to not accidentally introduce new syntax to maintenance branches.
2025-07-14merge revision(s) b42afa1dbcbb91e89852b3b3bc72484d7f0a5528, ↵Takashi Kokubun
f1f0cc14cc7d3f9be35b203e5583f9224b1e2387, 543e3a1896ae2fe3b5b954f6497d261ab5663a15, ed2806117a0b76e4439ce1a061fae21d9e116d69, 46e4c8673747de96838d2c5dec37446d23d99d88: [Backport #21500] Suppress gcc 15 unterminated-string-initialization warnings Separate `__has_attribute` from `defined(__has_attribute)` Fix Visual C warnings: ``` regenc.h(121): warning C4067: unexpected tokens following preprocessor directive - expected a newline ``` Cast up `int` instruction code to `VALUE` Fix Visual C warnings: ``` iseq.c(3793): warning C4312: 'type cast': conversion from 'int' to 'void *' of greater size iseq.c(3794): warning C4312: 'type cast': conversion from 'int' to 'void *' of greater size ``` Do not let files depend on a phony target Detect `clock_gettime` and `clock_getres` for winpthreads
2025-07-14merge revision(s) f6cbf499bc98b851034fffb49fcbb59d495f6f7b: [Backport #21354]Takashi Kokubun
Fix Symbol#to_proc (rb_sym_to_proc) to be ractor safe In non-main ractors, don't use `sym_proc_cache`. It is not thread-safe to add to this array without a lock and also it leaks procs from one ractor to another. Instead, we create a new proc each time. If this results in poor performance we can come up with a solution later. Fixes [Bug #21354]
2025-05-13merge revision(s) 3e47e7a499acd256be549935fcb559d3c82e556c, ↵Takashi Kokubun
b48b841378f80e16378ceb83f3b78e52df9ae023, 2fe8b9cd3d308d754f3d33a948dfb1dd782a10dc: [Backport #21327] Fix redefinition of `clock_gettime` and `clock_getres` winpthreads-git 12.0.0.r720 provides `clock_gettime` and `clock_getres` as inline functions. digest.so needs ruby/digest.h which is installed by build-ext Copy to path with the base name
2025-03-05Replace tombstone when converting AR to ST hashJohn Hawthorn
[Bug #21170] st_table reserves -1 as a special hash value to indicate that an entry has been deleted. So that that's a valid value to be returned from the hash function, do_hash replaces -1 with 0 so that it is not mistaken for the sentinel. Previously, when upgrading an AR table to an ST table, rb_st_add_direct_with_hash was used which did not perform the same conversion, this could lead to a hash in a broken state where one if its entries which was supposed to exist being marked as a tombstone. The hash could then become further corrupted when the ST table required resizing as the falsely tombstoned entry would be skipped but it would be counted in num entries, leading to an uninitialized entry at index 15. In most cases this will be really rare, unless using a very poorly implemented custom hash function. This also adds two debug assertions, one that st_add_direct_with_hash does not receive the reserved hash value, and a second in rebuild_table_with, which ensures that after we rebuild/compact a table it contains the expected number of elements. Co-authored-by: Alan Wu <alanwu@ruby-lang.org>
2024-12-25Sort undocumented entry list [ci skip]Nobuyoshi Nakada
2024-12-22Add `hello`Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/12427
2024-12-22Split `modular-gc` into build and installationNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/12428
2024-12-12Separated load path for test-bundler tasks for WindowsHiroshi SHIBATA
2024-12-12Hide pending results of turbo_testsHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12250
2024-12-12Use patched version of turbo_testsHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12250
2024-12-12Use turbo_tests instead of parallel_testsHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12250
2024-12-10Split system dependent commands to clean modular-gcNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/12300
2024-12-09Clean all modular GCsPeter Zhu
We should run `make clean` or `make distclean` on each of the GC directories. Notes: Merged: https://github.com/ruby/ruby/pull/12295
2024-12-09Only delete gc directory if emptyPeter Zhu
If building in the source directory, this will delete the gc directory. Notes: Merged: https://github.com/ruby/ruby/pull/12295
2024-12-09Don't delete .gc directoryPeter Zhu
We build in the gc directory since commit d0575032527916b523035be87ad876152c886c85, so we don't need to remove the .gc directory. Notes: Merged: https://github.com/ruby/ruby/pull/12295
2024-12-06Add Modular GC (default, MMTk) builds to CIMatt Valentine-House
Notes: Merged: https://github.com/ruby/ruby/pull/12212
2024-12-05Use symbol.h in vm.c to get macro for faster ID to sym (#12272)Randy Stauner
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> Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2024-12-05Standardize on the name "modular GC"Peter Zhu
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". Notes: Merged: https://github.com/ruby/ruby/pull/12261
2024-12-04Removed needless RSpec optionHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12252
2024-12-04Use same RSPECOPTS for test-bundler and test-bundler-parallelHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12252
2024-12-04Simplify test-bundler-parallelNobuyoshi Nakada
Get rid of repeated exec XRUBY recursively. Notes: Merged: https://github.com/ruby/ruby/pull/12252
2024-12-03Lock json-schema-5.1.0Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12232
2024-12-02yasmdata.rb is no longer generated for years [ci skip]Nobuyoshi Nakada
2024-11-30Revert useless VPATH for NMAKE [ci skip]Nobuyoshi Nakada
2024-11-30Win32: Fix dependencies with VPATH on nmakeNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/12224
2024-11-27Added --env option to mspec for test-bundled-gemsHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12179
2024-11-27Run only specified bundled gems with BUNDLED_GEMSHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12179
2024-11-26Clear shared_gc directoryNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/12166
2024-11-26Use extmk.rb to configure shared GCNobuyoshi Nakada
Since mkmf.rb is for extension libraries after installation, it cannot work alone in build directory and needs to run from extmk.rb. Notes: Merged: https://github.com/ruby/ruby/pull/12166
2024-11-26Shell dependent command should be in Makefile.inNobuyoshi Nakada
As common.mk is used by nmake.exe, the commands there need to be accepted also by cmd.exe. Notes: Merged: https://github.com/ruby/ruby/pull/12166
2024-11-25Use extconf to build external GC modulesMatt Valentine-House
Co-Authored-By: Peter Zhu <peter@peterzhu.ca> Notes: Merged: https://github.com/ruby/ruby/pull/12149
2024-11-21Annotate anonymous mmapKunshan Wang
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. Notes: Merged: https://github.com/ruby/ruby/pull/12119
2024-11-20Allow `io_buffer_memmove` to release the GVL for large buffers. (#12021)Samuel Williams
[Feature #20902] Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2024-11-20Introduce `Fiber::Scheduler#blocking_operation_wait`. (#12016)Samuel Williams
Redirect `rb_nogvl` blocking operations to the fiber scheduler if possible to prevent stalling the event loop. [Feature #20876] Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2024-11-18Don't need to call test-bundled-gems-fetch for bundled_gems_spec-runHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12111
2024-11-18Need to install all of dependency for bundler test suiteHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12111
2024-11-18Added PREPARE_BUNDLED_GEMS before bundled_gems_spec-runHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12111
2024-11-18Install zeitwerk at test-bundled-gems-prepareHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12111
2024-11-18Fixed dependency of make test-bundled-gemsHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12111
2024-11-18Load required helpers from bundler examples and invoke bundled_gems_spec.rb ↵Hiroshi SHIBATA
at test-bundled-gems Notes: Merged: https://github.com/ruby/ruby/pull/12111
2024-11-18Install zeitwerk without bundle installHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/12110
2024-11-14Remove dependency of version.c on gc/gc.hPeter Zhu
version.c does not depend on gc/gc.h. Notes: Merged: https://github.com/ruby/ruby/pull/12088
2024-11-14Include the currently active GC in RUBY_DESCRIPTIONMatt Valentine-House
This will add +MOD_GC to the version string and Ruby description when Ruby is compiled with shared gc support. When shared GC support is compiled in and a GC module has been loaded using RUBY_GC_LIBRARY, the version string will include the name of the currently active GC as reported by the rb_gc_active_gc_name function in the form +MOD_GC[gc_name] [Feature #20794] Notes: Merged: https://github.com/ruby/ruby/pull/11872
2024-11-08correct dependenciesKoichi Sasada
Notes: Merged: https://github.com/ruby/ruby/pull/11142
2024-11-06Revert "Introduce Fiber Scheduler `blocking_region` hook. (#11963)" (#12013)Samuel Williams
This reverts some of commit 87fb44dff6409a19d12052cf0fc07ba80a4c45ac. We will rename and propose a slightly different interface. Notes: Merged-By: ioquatix <samuel@codeotaku.com>
2024-11-05Update dependencyYusuke Endoh
2024-11-04YJIT: Replace Array#each only when YJIT is enabled (#11955)Takashi Kokubun
* YJIT: Replace Array#each only when YJIT is enabled * Add comments about BUILTIN_ATTR_C_TRACE * Make Ruby Array#each available with --yjit as well * Fix all paths that expect a C location * Use method_basic_definition_p to detect patches * Copy a comment about C_TRACE flag to compilers * Rephrase a comment about add_yjit_hook * Give METHOD_ENTRY_BASIC flag to Array#each * Add --yjit-c-builtin option * Allow inconsistent source_location in test-spec * Refactor a check of BUILTIN_ATTR_C_TRACE * Set METHOD_ENTRY_BASIC without touching vm->running Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2024-11-01[Bug #20853] Fix Proc#hash to not change after compactionPeter Zhu
The hash value of a Proc must remain constant after a compaction, otherwise it may not work as the key in a hash table. Notes: Merged: https://github.com/ruby/ruby/pull/11966