summaryrefslogtreecommitdiff
path: root/doc/yjit
AgeCommit message (Collapse)Author
2024-12-12[DOC] Improve formatting in Markdown files (#12322)Alexander Momchilov
* Fix WASM bullet/code indentation * Use `console` code highlighting where appropriate … which handles the prefix `$` correctly. * Migrate feature proposal template to MarkDown * Set language on code blocks
2024-12-10YJIT: add MPLR talk link. Encourage users to use --yjit-mem-size (#12305)Maxime Chevalier-Boisvert
* Add MPLR talk. Encourage users to use --yjit-mem-size. * Improve text Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2024-10-17YJIT: Add compilation log (#11818)Kevin Menard
* YJIT: Add `--yjit-compilation-log` flag to print out the compilation log at exit. * YJIT: Add an option to enable the compilation log at runtime. * YJIT: Fix a typo in the `IseqPayload` docs. * YJIT: Add stubs for getting the YJIT compilation log in memory. * YJIT: Add a compilation log based on a circular buffer to cap the log size. * YJIT: Allow specifying either a file or directory name for the YJIT compilation log. The compilation log will be populated as compilation events occur. If a directory is supplied, then a filename based on the PID will be used as the write target. If a file name is supplied instead, the log will be written to that file. * YJIT: Add JIT compilation of C function substitutions to the compilation log. * YJIT: Add compilation events to the circular buffer even if output is sent to a file. Previously, the two modes were treated as being exclusive of one another. However, it could be beneficial to log all events to a file while also allowing for direct access of the last N events via `RubyVM::YJIT.compilation_log`. * YJIT: Make timestamps the first element in the YJIT compilation log tuple. * YJIT: Stream log to stderr if `--yjit-compilation-log` is supplied without an argument. * YJIT: Eagerly compute compilation log messages to avoid hanging on to references that may GC. * YJIT: Log all compiled blocks, not just the method entry points. * YJIT: Remove all compilation events other than block compilation to slim down the log. * YJIT: Replace circular buffer iterator with a consuming loop. * YJIT: Support `--yjit-compilation-log=quiet` as a way to activate the in-memory log without printing it. Co-authored-by: Randy Stauner <randy.stauner@shopify.com> * YJIT: Promote the compilation log to being the one YJIT log. Co-authored-by: Randy Stauner <randy.stauner@shopify.com> * Update doc/yjit/yjit.md * Update doc/yjit/yjit.md --------- Co-authored-by: Randy Stauner <randy.stauner@shopify.com> Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2024-10-11YJIT: Improve build instructions for non-hackers (#11878)Alan Wu
Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2024-10-07YJIT: Add --yjit-mem-size option (#11810)Takashi Kokubun
* YJIT: Add --yjit-mem-size option * Improve --help * s/the region/this virtual memory region/ Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> --------- Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com> Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2024-08-08YJIT: Allow tracing fallback counters (#11347)Takashi Kokubun
* YJIT: Allow tracing fallback counters * Update yjit.md about --yjit-trace-exits=counter Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2024-07-11YJIT: remove doc/yjit/yjit_hacking.md (#11153)Maxime Chevalier-Boisvert
Document is 3 years old and out of date
2024-07-11Update yjit.md, explain how to run a single test with test-all (#11151)Maxime Chevalier-Boisvert
2024-07-05[DOC] yjit.md: Markdown fixes for RDocAlan Wu
It now renders properly on both GitHub and with RDoc's darkfish theme.
2024-04-03YJIT: update code optimization tips in yjit.md (#10445)Maxime Chevalier-Boisvert
* YJIT: update code optimization tips in yjit.md * Function => method
2024-03-14YJIT: Let yjit_perf.py support perf with Python disabled (#10246)Takashi Kokubun
* YJIT: Let yjit_perf.py support perf with Python disabled * Update yjit.md about perf * Recommend the extra interface by default
2024-02-27[DOC] Stop discouraging the use of Array#each (#10119)Takashi Kokubun
2024-02-14YJIT: Add --yjit-perf=codegen option (#9957)Takashi Kokubun
2024-02-08YJIT: Allow tracing a counted exit (#9890)Takashi Kokubun
* YJIT: Allow tracing a counted exit * Avoid clobbering caller-saved registers
2024-01-24YJIT: Update yjit.md about mem size (#9687)Takashi Kokubun
2024-01-24YJIT: reduce default exec mem size to 48MiB (#9685)Maxime Chevalier-Boisvert
YJIT: reduce default exec mem size to 48MiB based Based on user feedback from @jhawthorn and others. Better for small and memory-constrained deployments. NOTE: This commit should be included in the next Ruby 3.3.x point release. @xrxr should we tag someone specific?
2023-12-17Improve YJIT documentation for Ruby 3.3 (#9263)Takashi Kokubun
2023-12-13YJIT: Add --yjit-disable to help and reorder it (#9230)Takashi Kokubun
2023-11-29YJIT: edit `yjit.md` and bring it up to date (#9068)Maxime Chevalier-Boisvert
Also make various minor edits to improve readability.
2023-11-28YJIT: reduce default exec-mem-size to 64MiB (#9054)Maxime Chevalier-Boisvert
2023-11-20YJIT: make --yjit-max-versions=N option undocumented (#8962)Maxime Chevalier-Boisvert
Not useful for the vast majority of end users to change this option.
2023-11-07YJIT: update yjit.md, add MPLR 2023 paper and bibtex (#8861)Maxime Chevalier-Boisvert
* YJIT: update yjit.md, add MPLR 2023 paper and bibtex * Update doc/yjit/yjit.md
2023-10-19YJIT: remove unused `--yjit-greedy-versioning` command-line option (#8713)Maxime Chevalier-Boisvert
2023-10-18YJIT: Add --yjit-perf (#8697)Takashi Kokubun
Co-authored-by: Alan Wu <alansi.xingwu@shopify.com>
2023-10-10YJIT: Allow --yjit-trace-exits on release builds (#8619)Takashi Kokubun
2023-10-10Integer#times is not a C method [ci skip]Takashi Kokubun
2023-10-10Update yjit.mdMaxime Chevalier-Boisvert
2023-10-03YJIT: add heuristic to avoid compiling cold ISEQs (#8522)Maxime Chevalier-Boisvert
* YJIT: Add counter to measure how often we compile "cold" ISEQs (#535) Fix counter name in DEFAULT_COUNTERS YJIT: add --yjit-cold-threshold, don't compile cold ISEQs YJIT: increase default cold threshold to 200_000 Remove rb_yjit_call_threshold() Remove conflict markers Fix compilation errors Threshold 1 should compile immediately Debug deadlock issue with test_ractor Fix call threshold issue with tests * Revert exception threshold logic. Document option in yjid.md * (void) for 0 parameter functions in C99 * Rename iseq_entry_cold => cold_iseq_entry * Document --yjit-cold-threshold in ruby.c * Update doc/yjit/yjit.md Co-authored-by: Jean byroot Boussier <jean.boussier+github@shopify.com> * Shorten help string to appease test * Address bug found by Kokubun. Reorder logic. --------- Co-authored-by: Alan Wu <XrXr@users.noreply.github.com> Co-authored-by: Jean byroot Boussier <jean.boussier+github@shopify.com>
2023-09-18[DOC] Add production performance tips to yjit.md (#8472)Takashi Kokubun
Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
2023-08-23Change yjit stats list to be a unordered listRafael Mendonça França
Without using a list, this show as a single paragraph with all stats descriptions being in one single line Notes: Merged: https://github.com/ruby/ruby/pull/8268
2023-08-21Update yjit.md, document `--yjit-stats=quiet`Maxime Chevalier-Boisvert
2023-07-20YJIT: Rename exec_instruction to yjit_insns_count (#8102)Takashi Kokubun
Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2023-07-20YJIT: Avoid undercounting retired_in_yjit (#8038)Takashi Kokubun
* YJIT: Count the number of failed instructions * Rename yjit_insns_count to exec_instructions instead * Hoist out the exec_instruction counter Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2023-06-28Repair broken linkBurdetteLamar
Notes: Merged: https://github.com/ruby/ruby/pull/7993
2023-05-22Add documentation for some stats counters, and generally about YJIT statsNoah Gibbs
Notes: Merged: https://github.com/ruby/ruby/pull/7840
2023-05-10readline or libedit is no longer required to build rubyHiroshi SHIBATA
2023-03-20Update yjit.mdMaxime Chevalier-Boisvert
Document `make yjit-smoke-test`
2023-03-06MJIT is no longer slower on RailsTakashi Kokubun
2023-01-31Update yjit.mdMaxime Chevalier-Boisvert
Update some out of date information and mention how to check that YJIT is enabled.
2023-01-31Update yjit.mdMaxime Chevalier-Boisvert
2023-01-17Update yjit.mdMaxime Chevalier-Boisvert
2023-01-09Update yjit.mdMaxime Chevalier-Boisvert
Add Alan Wu's keynote & Maxime's talk to the list of YJIT-related talks :)
2022-12-19Syntax-highlight scripts in yjit.md [ci skip]Takashi Kokubun
Specifically, I wanted to grey out comments in shell scripts. But I just specified a language for blocks without comments as well to avoid forgetting that in the future.
2022-12-07Update yjit.mdMaxime Chevalier-Boisvert
Update citation, fix outdated and inaccurate information.
2022-11-28Update yjit.md to mention `RUBY_YJIT_ENABLE`Maxime Chevalier-Boisvert
2022-11-22Update yjit.mdMaxime Chevalier-Boisvert
2022-11-21YJIT: Lower the required Rust version from 1.58.1 to 1.58.0 (#6780)Takashi Kokubun
Notes: Merged-By: k0kubun <takashikkbn@gmail.com>
2022-11-13Update yjit.mdMaxime Chevalier-Boisvert
Remove disclaimer
2022-10-27Update docs wrt YJIT limitations and building YJIT (#6641)Maxime Chevalier-Boisvert
* Update docs wrt YJIT limitations and building YJIT * Update building_ruby.md Fix relative link Notes: Merged-By: maximecb <maximecb@ruby-lang.org>
2022-10-14Update yjit docs (#6548)Eileen M. Uchitelle
* The list of supported architectures was updated in https://github.com/ruby/ruby/commit/5ef048e5b1c3dd61adf782ace570bb0a1f9bb12f but the first paragraph wasn't updated. * `--yjit-trace-exits` was missing from the command-line options * Fixes some spacing issues * Updates call threshold default to 10, verified in the code that's correct. * Add code ticks around method names. * Fix namespace of stats example Notes: Merged-By: k0kubun <takashikkbn@gmail.com>