summaryrefslogtreecommitdiff
path: root/ruby.c
AgeCommit message (Collapse)Author
2022-01-19ruby.c: initialize extra optional extensions linked staticallyYuta Saito
Add a hook point to initialize extra extension libraries. The default hook function is replaced when linking a strong `Init_extra_exts` symbol. A builder can insert an object file that defines Init_extra_exts by XLDFLAGS. Notes: Merged: https://github.com/ruby/ruby/pull/5407
2022-01-18[Feature #18491] Drop support for HP-UXPeter Zhu
IA64 support was dropped in ticket #15894, so we can drop support for HP-UX. Notes: Merged: https://github.com/ruby/ruby/pull/5457
2022-01-16`O_NONBLOCK` is not always a preprocessor constant on all platformsNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5454 Merged-By: nobu <nobu@ruby-lang.org>
2022-01-15Transfer the responsibility for MJIT options to mjit.cNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5448
2022-01-15Define the default JIT feature bitNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5447
2022-01-12Show JIT options only when supportedNobuyoshi Nakada
2022-01-11Fix compile errorsKazuhiro NISHIYAMA
``` compiling ../ruby.c ../ruby.c:1547:17: error: implicit declaration of function 'setup_yjit_options' is invalid in C99 [-Werror,-Wimplicit-function-declaration] setup_yjit_options(s, &opt->yjit); ^ ../ruby.c:1547:17: note: did you mean 'setup_mjit_options'? ../ruby.c:1122:1: note: 'setup_mjit_options' declared here setup_mjit_options(const char *s, struct mjit_options *mjit_opt) ^ ../ruby.c:1547:45: error: no member named 'yjit' in 'struct ruby_cmdline_options'; did you mean 'mjit'? setup_yjit_options(s, &opt->yjit); ^~~~ mjit ../ruby.c:192:25: note: 'mjit' declared here struct mjit_options mjit; ^ ../ruby.c:1924:28: error: no member named 'yjit' in 'struct ruby_cmdline_options'; did you mean 'mjit'? rb_yjit_init(&opt->yjit); ^~~~ mjit ../ruby.c:192:25: note: 'mjit' declared here struct mjit_options mjit; ^ 3 errors generated. ```
2022-01-11Use `setup_yjit_options` only when supportedNobuyoshi Nakada
2022-01-11Reject command line option ending with `-`Nobuyoshi Nakada
2022-01-11Define YJIT options only when supportedNobuyoshi Nakada
2022-01-10Fix default --jit-max-cache in `ruby --help`Kazuhiro NISHIYAMA
changed at 028f1887c2bfa50dcfc1b623470d6ab1b880fdde
2022-01-09Add `=num` to yjit optionsKazuhiro NISHIYAMA
`--yjit-call-threshold` and `--yjit-max-versions` need an argument.
2022-01-04Fix crash on bootup when RGENGC_CHECK_MODE=2 with GC stressPeter Zhu
We need to unshare the array loaded_features because the shared root could be old gen (while loaded_features is young) which causes a WB miss. Notes: Merged: https://github.com/ruby/ruby/pull/5392
2021-12-13Rename --jit to --mjit (#5248)Takashi Kokubun
* Rename --jit to --mjit [Feature #18349] * Fix a few more --jit references * Fix MJIT Actions * More s/jit/mjit/ and re-introduce --disable-jit * Update NEWS.md * Fix test_bug_reporter_add Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2021-12-13ruby.c: Fix typoYusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/4784
2021-12-13Introduce an option "--dump=insns_without_opt" for debugging purposesYusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/4784
2021-12-01Revert "Force disable yjit on OpenBSD"Aaron Patterson
This reverts commit 119626da947bf6492ef7a27abf3bf12de5d0d95a.
2021-11-18Add --yjit-no-type-prop so we can test YJIT without type propagation (#5135)Maxime Chevalier-Boisvert
* Add --yjit-no-type-prop so we can test YJIT without type propagation * Fix typo in command line option * Leave just two test workflows enable for YJIT Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2021-10-25[Feature #18239] Implement VWA for stringsPeter Zhu
This commit adds support for embedded strings with variable capacity and uses Variable Width Allocation to allocate strings. Notes: Merged: https://github.com/ruby/ruby/pull/4933
2021-10-21Fix TestRubyOptions#test_enable for -DMJIT_FORCE_ENABLETakashi Kokubun
--enable=all didn't work when cppflags=-DMJIT_FORCE_ENABLE was given.
2021-10-21Force disable yjit on OpenBSDJeremy Evans
TestRubyOptions#test_enable was broken on OpenBSD after the yjit merge. --yjit (and --enable-all, which enables --yjit) fails on OpenBSD because yjit uses an insecure mmap call (both writable and executable), in alloc_exec_mem, which OpenBSD does not allow. This can probably be reverted if yjit switches to a more secure mmap design (writable xor executable). This would involve initially calling mmap with PROT_READ | PROT_WRITE, and after writing of executable code has finished, using mprotect to switch to PROT_READ | PROT_EXEC. I believe Firefox uses this approach for their Javascript engine since Firefox 46.
2021-10-20Fix indentation in ruby.cAlan Wu
2021-10-20Warn when trying to use YJIT in --disable-jit-support buildsAlan Wu
2021-10-20Show --yjit in help messageAlan Wu
2021-10-20Improve YJIT command line option parsingAlan Wu
Previously, options such as "--yjit123" would enable YJIT. Additionally, the error message for argument parsing mentioned "--jit-..." instead of "--yjit-...".
2021-10-20YJIT_STATS instead of RUBY_DEBUG for --yjit-stats in help printoutAlan Wu
2021-10-20Say YJIT is disabled by default in ruby --helpAlan Wu
2021-10-20Style fix in ruby.cAlan Wu
2021-10-20Don't enable YJIT by default. More tests on both Ubuntu and MacOS.Noah Gibbs
Add RUBY_YJIT_ENABLE env var and YJIT_FORCE_ENABLE compile-time constant. Rename YJIT_STATS to RUBY_YJIT_STATS.
2021-10-20Reduce line length for YJIT option descriptionsNoah Gibbs
2021-10-20Document YJIT options in --helpNoah Gibbs
2021-10-20is this right?Aaron Patterson
2021-10-20Don't check MJIT if it's not enabledAaron Patterson
2021-10-20Disable YJIT by default if MJIT_FORCE_ENABLE is onAaron Patterson
Compile time flag seems pretty forceful, so let MJIT turn on by default if it is used.
2021-10-20disable MJIT when --enable-all is setAaron Patterson
2021-10-20Update ruby.cMaxime Chevalier-Boisvert
2021-10-20Exit if YJIT and MJIT are both enabledAaron Patterson
YJIT and MJIT can't be running in the same process otherwise they'll clobber each other. We should show an error and exit if they're both enabled.
2021-10-20Try running with more YJIT options in CI to surface more bugsMaxime Chevalier-Boisvert
2021-10-20Increase default YJIT call threshold to 10. Add exec mem size arg. (#52)Maxime Chevalier-Boisvert
2021-10-20Implement greedy versioning. Refactor versioning logic. (#10)Maxime Chevalier-Boisvert
* Implement eager versioning. Refactor versioning logic. * Add --version-limit and --greedy-versioning command-line args
2021-10-20Yet Another Ruby JIT!Jose Narvaez
Renaming uJIT to YJIT. AKA s/ujit/yjit/g.
2021-10-20Implement --ujit-call-thresholdMaxime Chevalier-Boisvert
2021-10-20Report unknown --ujit-* optionsMaxime Chevalier-Boisvert
2021-10-20Implement --ujit-stats and instructoin countingAlan Wu
VM and ujit instruction counting in debug builds. shopify/ruby#19
2021-10-20Refactor uJIT code into more files for readabilityMaxime Chevalier-Boisvert
2021-10-20Show whether MicroJIT is enabled in the version stringAlan Wu
2021-10-20Fix mistake in ujit command line parsingAlan Wu
2021-10-20Implement the --disable-ujit command line optionAlan Wu
2021-10-01Skip broken strings as the locale encodingNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4915
2021-10-01Replace expanded load path only when modifiedNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/4915