summaryrefslogtreecommitdiff
path: root/yjit/yjit.mk
AgeCommit message (Collapse)Author
2023-02-23YJIT: Add `make yjit-smoke-test` [ci skip]Alan Wu
I have this as a shell command and Maxime told me that she finds it useful, too. I tested this on a release build and a dev build. Note I intentional didn't put `$(Q)` in front of everything so `make` echos the command it runs. Notes: Merged: https://github.com/ruby/ruby/pull/7365
2023-01-31Silence dozens of useless warnings from `nm` on macOSNobuyoshi Nakada
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
2022-12-13Suppress the output of `if [ 'xyes' = xyes ];` codeTakashi Kokubun
itself
2022-12-08YJIT: Fold check-yjit-bindings into yjit-bindgenAlan Wu
So it's shorter on CI and the hint about how the fix the failure shows up. It's going to print a diff locally too, but that should be fine. Notes: Merged: https://github.com/ruby/ruby/pull/6883
2022-09-20YJIT: Support MAKE=bmake for release buildAlan Wu
This add support for bmake, which should allow building with `configure --enable-yjit` for the BSDs. Tested on FreeBSD 13 and on macOS with `configure MAKE=bmake` on a case-sensitive file system. It works by including a fragment into the Makefile through the configure script, similar to common.mk. It uses the always rebuild approach to keep build system changes minimal. Notes: Merged: https://github.com/ruby/ruby/pull/6408
2022-09-20YJIT: Show --yjit-stats of railsbench on CI (#6403)Takashi Kokubun
* YJIT: Show --yjit-stats of railsbench on CI * YJIT: Use --enable-yjit=dev to see ratio_in_yjit * YJIT: Show master GitHub URL for quick comparison * YJIT: Avoid making CI red by a yjit-bench failure Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-09-14Add comments to touch libyjitNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6371
2022-09-14Touch libyjit.a which may be still old due to the cacheNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/6371
2022-09-14Expand dependency for `$(YJIT_LIBS)`Nobuyoshi Nakada
Currently, miniruby is rebuild **always** when yjit is enabled, even if nothing is changed. Notes: Merged: https://github.com/ruby/ruby/pull/6371
2022-07-29Add --enable-yjit=dev_nodebug configure optionJohn Hawthorn
Notes: Merged: https://github.com/ruby/ruby/pull/6105
2022-07-29Add --enable-yjit=stats configure optionJohn Hawthorn
Notes: Merged: https://github.com/ruby/ruby/pull/6105
2022-06-29Add a check-yjit-bindgen-unused target. Add to CI. (#6066)Noah Gibbs
This fails if there are any unused rust-bindgen "allow" entries. For that target we turn on Rust warnings (there are a lot) and grep for the ones that correspond to unused allow entries. I've added check-yjit-bindgen-unused as a dependency of check-yjit-bindings, so unused allow entries will now fail CI. This change also removes our single unused allow entry (VM_CALL.*) which was known to be bad. Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-06-02Split YJIT rules for CODEOWNERSNobuyoshi Nakada