summaryrefslogtreecommitdiff
path: root/common.mk
AgeCommit message (Collapse)Author
2023-02-08Extract include/ruby/internal/attr/packed_struct.hNobuyoshi Nakada
Split `PACKED_STRUCT` and `PACKED_STRUCT_UNALIGNED` macros into the macros bellow: * `RBIMPL_ATTR_PACKED_STRUCT_BEGIN` * `RBIMPL_ATTR_PACKED_STRUCT_END` * `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_BEGIN` * `RBIMPL_ATTR_PACKED_STRUCT_UNALIGNED_END` Notes: Merged: https://github.com/ruby/ruby/pull/7268
2023-01-31Document BUNDLED_GEMS in make testTakashi Kokubun
2023-01-27YJIT: Fix shared/static library symbol leaksAlan Wu
Rust 1.58.0 unfortunately doesn't provide facilities to control symbol visibility/presence, but we care about controlling the list of symbols exported from libruby-static.a and libruby.so. This commit uses `ld -r` to make a single object out of rustc's staticlib output, libyjit.a. This moves libyjit.a out of MAINLIBS and adds libyjit.o into COMMONOBJS, which obviates the code for merging libyjit.a into libruby-static.a. The odd appearance of libyjit.a in SOLIBS is also gone. To filter out symbols we do not want to export on ELF platforms, we use objcopy after the partial link. On darwin, we supply a symbol list to the linker which takes care of hiding unprefixed symbols. [Bug #19255] Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org> Notes: Merged: https://github.com/ruby/ruby/pull/7115
2023-01-26Enable code-coverage result for test-syntax-suggestHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/7185
2023-01-26[Bug #19340] Fix bundle gems with test revisionNobuyoshi Nakada
Build temporary gem package from cloned repository if test revision is set. Notes: Merged: https://github.com/ruby/ruby/pull/7146
2023-01-25Support simplecov-0.22.0.Hiroshi SHIBATA
simplecov-0.22.0 no longer support pre-0.18 result format. result data needs `lines` key for coverage data.
2023-01-23update-coverage needs to build ruby and all C-ext librariesHiroshi SHIBATA
2023-01-20Run `after-update` in the same main make process [ci skip]Nobuyoshi Nakada
2023-01-18Pin simplecov-0.20.0Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/7137
2023-01-18Switch to use gem version of simplecov, not git cloneHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/7137
2023-01-17benchmark_driver v0.16.3Takashi Kokubun
Some chruby-related features and bug fixes.
2023-01-17test-syntax-suggest is now part of make checkHiroshi SHIBATA
2023-01-17Added make exam to help messageHiroshi SHIBATA
2023-01-17Added test-syntax-suggest to help messageHiroshi SHIBATA
2023-01-17SimpleCov is hosted under simplecov-ruby org nowHiroshi SHIBATA
2023-01-16YJIT: Use ThinLTO for Rust parts in release modeAlan Wu
This reduces the code size of libyjit.a by a lot. On darwin it went from 23 MiB to 12 MiB for me. I chose ThinLTO over fat LTO for the relatively fast build time; in case we need to debug release-build-only problems it won't be painful. Notes: Merged: https://github.com/ruby/ruby/pull/7134
2023-01-15Do not depend on `REVISION_H`Nobuyoshi Nakada
Disable for now, since this seems causing infinite rebuilding. Notes: Merged: https://github.com/ruby/ruby/pull/7125
2023-01-14Move the dependency of makefiles on revision header [ci skip]Nobuyoshi Nakada
Since `REVISION_H` is defined in common.mk which is appended or included after Makefile.in, it was undefined yet at the point of the dependency.
2023-01-12Suppressing installation messages with test-bundlerHiroshi SHIBATA
Ignoring the following messages: ``` (snip) -e 'load "spec/bundler/support/bundle.rb"' -- install --gemfile=tool/bundler/dev_gems.rb Using rake 13.0.6 Using bundler 2.5.0.dev Using diff-lcs 1.5.0 Using parallel 1.22.1 Using parallel_tests 2.32.0 Using power_assert 2.0.2 Using rb_sys 0.9.52 Using rspec-support 3.12.0 Using rspec-core 3.12.0 Using rspec-expectations 3.12.0 Using rspec-mocks 3.12.1 Using test-unit 3.5.5 Using uri 0.12.0 Using webrick 1.7.0 Bundle complete! 11 Gemfile dependencies, 14 gems now installed. Gems in the groups 'lint' and 'doc' were not installed. Use `bundle info [gemname]` to see where a bundled gem is installed. ```
2023-01-11Suppressing pending messages with RSpecHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/7102
2023-01-09Allow overriding a gdb command on `make gdb`Takashi Kokubun
With --enable-yjit, you see an annoying warning like this: warning: Missing auto-load script at offset 0 in section .debug_gdb_scripts of file /home/k0kubun/src/github.com/ruby/ruby/.ruby/miniruby. Use `info auto-load python-scripts [REGEXP]' to list them. Using `rust-gdb` instead fixes it. I use this like `make gdb GDB=rust-gdb`.
2023-01-05common.mk: Do not invoke outdate-bundled-gems by defaultYusuke Endoh
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] Notes: Merged: https://github.com/ruby/ruby/pull/7066
2022-12-28Test bundler and bundled gems by examNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/7009
2022-12-28Order test-bundler-parallel dependencyNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/7009
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