summaryrefslogtreecommitdiff
path: root/common.mk
AgeCommit message (Collapse)Author
2025-07-24Update dependenciesHiroshi SHIBATA
2025-07-24Suppress gcc 15 unterminated-string-initialization warningsNobuyoshi Nakada
2025-03-06Replace 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-03Lock json-schema-5.1.0 for using pure ruby versionHiroshi SHIBATA
2024-11-10merge revision(s) 29c480dd6fca993590c82078ba797e2c4e876ac7: [Backport #20853]nagachika
[Bug #20853] Fix Proc#hash to not change after compaction The hash value of a Proc must remain constant after a compaction, otherwise it may not work as the key in a hash table.
2024-10-20merge revision(s) bcb3247072e6973d0f6b50ca5fed238d5824bd28: [Backport #20500]nagachika
[Bug #19778] Pass additional include options to INCFLAGS in common.mk
2024-02-25merge revision(s) ↵nagachika
665b4c5b2a31078d7db0173ad60daad0b463c1fd,642875e474b4e6a13770b1dbbc33d466ba5e0718,54b9b80b84760717aadb8bf67f638785ed895a58,361bce8d2c4c90a01eb3b7365a87dec0d93bb2b6: [Backport #19967] [Bug #19967] Reset `LIBPATHENV` env after started Not to affect other tools invoked as child processes. --- common.mk | 3 ++- template/Makefile.in | 3 +++ template/fake.rb.in | 3 +++ tool/fake.rb | 8 ++++++++ 4 files changed, 16 insertions(+), 1 deletion(-) [Bug #19967] Revert "configure.ac: LIBPATHENV on macOS" This reverts commit 1961c786aab243b3eb60e7238224e87975d88056. These environment variables should no longer propagate to child processes. --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) [Bug #19967] Delete real path --- tool/fake.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) [Bug #19967] Ignore library before build --- tool/fake.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
2023-07-01Fix cvar caching when class is clonedeileencodes
The class variable cache that was added in https://github.com/ruby/ruby/pull/4544 changed the behavior of class variables on cloned classes. As reported when a class is cloned AND a class variable was set, and the class variable was read from the original class, reading a class variable from the cloned class would return the value from the original class. This was happening because the IC (inline cache) is stored on the ISEQ which is shared between the original and cloned class, therefore they share the cache too. To fix this we are now storing the `cref` in the cache so that we can check if it's equal to the current `cref`. If it's different we don't want to read from the cache. If it's the same we do. Cloned classes don't share the same cref with their original class. This will need to be backported to 3.1 in addition to 3.2 since the bug exists in both versions. We also added a marking function which was missing. Fixes [Bug #19379] Co-authored-by: Aaron Patterson <tenderlove@ruby-lang.org>
2023-06-13Run test-unit test without rake task to avoid yard dependencyHiroshi SHIBATA
2023-06-13pry is not needed for test-bundled-gemsHiroshi SHIBATA
2023-01-18merge revision(s) 4959e01932cf6c4d3e5e90d3e0b4fa780f754fa6: [Backport #19271]NARUSE, Yui
common.mk: Do not invoke outdate-bundled-gems by default If baseruby is available (and its version is different from one being built) when compiling ruby, tool/outdate-bundled-gems.rb (which is invoked by `make install`) wrongly deletes debug.so and rbs_extension.so in .bundle/extension/*. This leads to a broken installation of ruby which lacks the libraries, which may make rubygems show the following warnings (in some additional complex conditions): ``` $ irb Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1 Ignoring rbs-2.8.2 because its extensions are not built. Try: gem pristine rbs --version 2.8.2 irb(main):001:0> ``` According to some committers, tool/outdate-bundled-gems.rb is introduced for fixing a build issue, but the detail is not recorded. The issue seems to occur only when debug gem or rbs gem is updated, so it is difficult to fix the script so soon. Tentatively, this change stops invoking the script by default. This should be backported to ruby_3_2. Fixes [Bug #19271] --- common.mk | 1 - 1 file changed, 1 deletion(-)
2022-12-25Clean yjit directory in build directory [ci skip]Nobuyoshi Nakada
2022-12-24Fix test-syntax-suggest orderNobuyoshi Nakada
Prepare for test-syntax-suggest after other tests finished.
2022-12-24MJIT: Cancel all on disastrous situations (#7019)Takashi Kokubun
I noticed this while running test_yjit with --mjit-call-threshold=1, which redefines `Integer#<`. When Ruby is monkey-patched, MJIT itself could be broken. Similarly, Ruby scripts could break MJIT in many different ways. I prepared the same set of hooks as YJIT so that we could possibly override it and disable it on those moments. Every constant under RubyVM::MJIT is private and thus it's an unsupported behavior though. Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-12-23Test syntax_suggest by `make check`Nobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/7010
2022-12-21Put RubyVM::MJIT::Compiler under ruby_vm directory (#6989)Takashi Kokubun
[Misc #19250] Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-12-20Use an experimental warning for Fiber#storage=Benoit Daloze
Notes: Merged: https://github.com/ruby/ruby/pull/6972
2022-12-20MSVS lacks `touch` [ci skip]Nobuyoshi Nakada
2022-12-20loadpath.c does not depend on revision.h since 947ebd0ac5baNobuyoshi Nakada
2022-12-16Followed up ad18d1297ed82aa9c38375532b0b709131cf1ae7 with tool/update-deps --fixHiroshi SHIBATA
2022-12-15Move definition of SIZE_POOL_COUNT back to gc.hPeter Zhu
SIZE_POOL_COUNT is a GC macro, it should belong in gc.h and not shape.h. SIZE_POOL_COUNT doesn't depend on shape.h so we can have shape.h depend on gc.h. Co-Authored-By: Matt Valentine-House <matt@eightbitraptor.com> Notes: Merged: https://github.com/ruby/ruby/pull/6940
2022-12-12YJIT: Generate debug info in release builds (#6910)Alan Wu
* YJIT: Generate debug info in release builds They are helpful in case we need to do core dump debugging. * Remove Cirrus DOC skip rule The syntax for this is weird, and escaping [ and ] cause parse failures. Cirrus' docs said to surround with .*, but then that seems to skip everything. Revert e0a4205eb785f266fdf08f409c2f112f5dfcb229 for now. Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-12-10[Bug #19181] Separate the rule for unicode_normalize/tables.rb timestampNobuyoshi Nakada
It should depends on only existing data files (except for the tools), unless `ALWAYS_UPDATE_UNICODE=yes`. Notes: Merged: https://github.com/ruby/ruby/pull/6898
2022-12-08ObjectSpace.dump_all: dump shapes as wellJean Boussier
I see several arguments in doing so. First they use a non trivial amount of memory, so for various memory profiling/mapping tools it is relevant to have visibility of the space occupied by shapes. Then, some pathological code can create a tons of shape, so it is valuable to have a way to have a way to observe shapes without having to compile Ruby with `SHAPE_DEBUG=1`. And additionally it's likely much faster to dump then this way than to use `RubyVM::Shape`. There are however a few open questions: - Shapes can't respect the `since:` argument. Not sure what to do when it is provided. Would probably make sense to not dump them. - Maybe it would make more sense to have a separate `ObjectSpace.dump_shapes`? - Maybe instead `dump_all` should take a `shapes: false` argument? Additionally, `ObjectSpace.dump_shapes` is added for the use case of debugging the evolution of the shape tree. Notes: Merged: https://github.com/ruby/ruby/pull/6868
2022-12-07Stop transitioning to UNDEF when undefining an instance variableAaron Patterson
Cases like this: ```ruby obj = Object.new loop do obj.instance_variable_set(:@foo, 1) obj.remove_instance_variable(:@foo) end ``` can cause us to use many more shapes than we want (and even run out). This commit changes the code such that when an instance variable is removed, we'll walk up the shape tree, find the shape, then rebuild any child nodes that happened to be below the "targetted for removal" IV. This also requires moving any instance variables so that indexes derived from the shape tree will work correctly. Co-Authored-By: Jemma Issroff <jemmaissroff@gmail.com> Co-authored-by: John Hawthorn <jhawthorn@github.com> Notes: Merged: https://github.com/ruby/ruby/pull/6866
2022-12-06Update dependenciesDaniel Colson
2022-12-06[Bug #19180] rbconfig.rb depends on common.mkNobuyoshi Nakada
2022-12-06change Unicode version to 15.0.0Martin Dürst
2022-12-05Handle depend files on nmakeNobuyoshi Nakada
2022-12-05Clean compiler intermediate files moreNobuyoshi Nakada
2022-12-02Introduce encoding check macroS-H-GAMELINKS
Notes: Merged: https://github.com/ruby/ruby/pull/6700
2022-11-29MJIT: Rename mjit_compile_attr to mjit_sp_incTakashi Kokubun
There's no mjit_compile.inc, so no need to use this prefix anymore.
2022-11-29MJIT: Merge mjit_unit.h into mjit_c.hTakashi Kokubun
The distinction doesn't make much difference today.
2022-11-29MJIT: Rename mjit_compiler.c to mjit_c.cTakashi Kokubun
It's no longer about the compiler logic itself.
2022-11-29Extract outdate-bundled-gems.rbNobuyoshi Nakada
2022-11-29Fix dependencies of outdate-bundled-gemsNobuyoshi Nakada
Extract new gems then remove outdated gem directories.
2022-11-29Refine outdate-bundled-gemsNobuyoshi Nakada
2022-11-28MJIT: Rename mjit_compiler.h to mjit_c.hTakashi Kokubun
because it exists primarily for generating mjit_c.rb.
2022-11-28Force to update revision.h after the source updated [ci skip]Nobuyoshi Nakada
2022-11-26MJIT: Merge mjit_compiler.rb into mjit.rbTakashi Kokubun
There are too many mjit_compiler.* files. It was hard to find files.
2022-11-22Add Time#deconstruct_keyszverok
Notes: Merged: https://github.com/ruby/ruby/pull/6594
2022-11-21Use double quotes for nmake [ci skip]Nobuyoshi Nakada
2022-11-21Add outdate-bundled-gems target [ci skip]Nobuyoshi Nakada
2022-11-20Update fake.rb for test-specNobuyoshi Nakada
spec/ruby/command_line/dash_v_spec.rb needs it.
2022-11-16Remove duplicate `.rbinc` on `.rb` dependenciesNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6742
2022-11-15Let mjit-bindgen use BASERUBY and bundle/inline (#6740)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-11-15Rewrite Symbol#to_sym and #intern in Ruby (#6683)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-11-16Depending on revision.h with VPATHNobuyoshi Nakada
2022-11-14Clean YJIT libraries [ci skip]Nobuyoshi Nakada
2022-11-14[Bug #19127] Fix revision.h dependency when no baserubyNobuyoshi Nakada
Disconnect the dependency of revision.h on the timestamp file if no baseruby is available Notes: Merged: https://github.com/ruby/ruby/pull/6724 Merged-By: nobu <nobu@ruby-lang.org>