summaryrefslogtreecommitdiff
path: root/common.mk
Commit message (Collapse)AuthorAgeFilesLines
* Clone bundled gem sources only if GIT is availableNobuyoshi Nakada2023-02-221-1/+1
|
* Clone and create dummy gemspec in sequential buildNobuyoshi Nakada2023-02-221-0/+14
|
* Encapsulate RCLASS_ATTACHED_OBJECTJean Boussier2023-02-151-3/+5
| | | | | | | | | Right now the attached object is stored as an instance variable and all the call sites that either get or set it have to know how it's stored. It's preferable to hide this implementation detail behind accessors so that it is easier to change how it's stored.
* [DOC] Fix the help messages for cleanNobuyoshi Nakada2023-02-101-2/+2
|
* Merge gc.h and internal/gc.hMatt Valentine-House2023-02-091-18/+3
| | | | [Feature #19425]
* Extract include/ruby/internal/attr/packed_struct.hNobuyoshi Nakada2023-02-081-0/+81
| | | | | | | | | 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`
* Document BUNDLED_GEMS in make testTakashi Kokubun2023-01-311-1/+1
|
* YJIT: Fix shared/static library symbol leaksAlan Wu2023-01-271-0/+1
| | | | | | | | | | | | | | | | | | | | 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>
* Enable code-coverage result for test-syntax-suggestHiroshi SHIBATA2023-01-261-1/+2
|
* [Bug #19340] Fix bundle gems with test revisionNobuyoshi Nakada2023-01-261-4/+4
| | | | | Build temporary gem package from cloned repository if test revision is set.
* Support simplecov-0.22.0.Hiroshi SHIBATA2023-01-251-1/+1
| | | | | simplecov-0.22.0 no longer support pre-0.18 result format. result data needs `lines` key for coverage data.
* update-coverage needs to build ruby and all C-ext librariesHiroshi SHIBATA2023-01-231-1/+1
|
* Run `after-update` in the same main make process [ci skip]Nobuyoshi Nakada2023-01-201-1/+1
|
* Pin simplecov-0.20.0Hiroshi SHIBATA2023-01-181-1/+1
|
* Switch to use gem version of simplecov, not git cloneHiroshi SHIBATA2023-01-181-6/+4
|
* benchmark_driver v0.16.3Takashi Kokubun2023-01-171-1/+1
| | | | Some chruby-related features and bug fixes.
* test-syntax-suggest is now part of make checkHiroshi SHIBATA2023-01-171-1/+1
|
* Added make exam to help messageHiroshi SHIBATA2023-01-171-0/+1
|
* Added test-syntax-suggest to help messageHiroshi SHIBATA2023-01-171-0/+1
|
* SimpleCov is hosted under simplecov-ruby org nowHiroshi SHIBATA2023-01-171-2/+2
|
* YJIT: Use ThinLTO for Rust parts in release modeAlan Wu2023-01-161-0/+1
| | | | | | | 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.
* Do not depend on `REVISION_H`Nobuyoshi Nakada2023-01-151-2/+2
| | | Disable for now, since this seems causing infinite rebuilding.
* Move the dependency of makefiles on revision header [ci skip]Nobuyoshi Nakada2023-01-141-0/+3
| | | | | | 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.
* Suppressing installation messages with test-bundlerHiroshi SHIBATA2023-01-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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. ```
* Suppressing pending messages with RSpecHiroshi SHIBATA2023-01-111-6/+6
|
* Allow overriding a gdb command on `make gdb`Takashi Kokubun2023-01-091-1/+2
| | | | | | | | | | 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`.
* common.mk: Do not invoke outdate-bundled-gems by defaultYusuke Endoh2023-01-051-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]
* Test bundler and bundled gems by examNobuyoshi Nakada2022-12-281-0/+2
|
* Order test-bundler-parallel dependencyNobuyoshi Nakada2022-12-281-2/+3
|
* Clean yjit directory in build directory [ci skip]Nobuyoshi Nakada2022-12-251-1/+1
|
* Fix test-syntax-suggest orderNobuyoshi Nakada2022-12-241-4/+8
| | | | Prepare for test-syntax-suggest after other tests finished.
* MJIT: Cancel all on disastrous situations (#7019)Takashi Kokubun2022-12-241-0/+2
| | | | | | | | | | 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.
* Test syntax_suggest by `make check`Nobuyoshi Nakada2022-12-231-2/+4
|
* Put RubyVM::MJIT::Compiler under ruby_vm directory (#6989)Takashi Kokubun2022-12-211-3/+3
| | | [Misc #19250]
* Use an experimental warning for Fiber#storage=Benoit Daloze2022-12-201-0/+14
|
* MSVS lacks `touch` [ci skip]Nobuyoshi Nakada2022-12-201-5/+5
|
* loadpath.c does not depend on revision.h since 947ebd0ac5baNobuyoshi Nakada2022-12-201-1/+0
|
* Followed up ad18d1297ed82aa9c38375532b0b709131cf1ae7 with tool/update-deps --fixHiroshi SHIBATA2022-12-161-0/+2
|
* Move definition of SIZE_POOL_COUNT back to gc.hPeter Zhu2022-12-151-0/+6
| | | | | | | | 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>
* YJIT: Generate debug info in release builds (#6910)Alan Wu2022-12-121-0/+1
| | | | | | | | | | | * 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.
* [Bug #19181] Separate the rule for unicode_normalize/tables.rb timestampNobuyoshi Nakada2022-12-101-12/+24
| | | | | It should depends on only existing data files (except for the tools), unless `ALWAYS_UPDATE_UNICODE=yes`.
* ObjectSpace.dump_all: dump shapes as wellJean Boussier2022-12-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Stop transitioning to UNDEF when undefining an instance variableAaron Patterson2022-12-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | 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>
* Update dependenciesDaniel Colson2022-12-061-0/+41
|
* [Bug #19180] rbconfig.rb depends on common.mkNobuyoshi Nakada2022-12-061-1/+1
|
* change Unicode version to 15.0.0Martin Dürst2022-12-061-1/+1
|
* Handle depend files on nmakeNobuyoshi Nakada2022-12-051-6/+6
|
* Clean compiler intermediate files moreNobuyoshi Nakada2022-12-051-1/+1
|
* Introduce encoding check macroS-H-GAMELINKS2022-12-021-0/+3
|
* MJIT: Rename mjit_compile_attr to mjit_sp_incTakashi Kokubun2022-11-291-2/+2
| | | | There's no mjit_compile.inc, so no need to use this prefix anymore.