1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
Commit graph

17 commits

Author SHA1 Message Date
Takashi Kokubun
f8936b3341
Remove documentation about dev
dev is Shopify's internal tool that doesn't work if you use Intel
Homebrew on M1 (or rbenv, btw). Now that we maintain this outside
Shopify's repository, we should stop talking about it here.
2022-08-08 19:02:30 -07:00
Alan Wu
b793245dac
[DOC] Some YJIT dependencies are no longer required
The `capstone` crate on crates.io does not need `libcapstone` on the system
because it builds from [source].
`gdbm` is now a separate gem (thanks for extracting it!).

[source]: c31409905a/capstone-sys/build.rs (L143)
2022-05-02 14:00:35 -04:00
Maxime Chevalier-Boisvert
e1536a1e56
Update yjit.md
Fix configure line in YJIT build instructions
2022-04-27 13:16:42 -04:00
Alan Wu
f90549cd38 Rust YJIT
In December 2021, we opened an [issue] to solicit feedback regarding the
porting of the YJIT codebase from C99 to Rust. There were some
reservations, but this project was given the go ahead by Ruby core
developers and Matz. Since then, we have successfully completed the port
of YJIT to Rust.

The new Rust version of YJIT has reached parity with the C version, in
that it passes all the CRuby tests, is able to run all of the YJIT
benchmarks, and performs similarly to the C version (because it works
the same way and largely generates the same machine code). We've even
incorporated some design improvements, such as a more fine-grained
constant invalidation mechanism which we expect will make a big
difference in Ruby on Rails applications.

Because we want to be careful, YJIT is guarded behind a configure
option:

```shell
./configure --enable-yjit # Build YJIT in release mode
./configure --enable-yjit=dev # Build YJIT in dev/debug mode
```

By default, YJIT does not get compiled and cargo/rustc is not required.
If YJIT is built in dev mode, then `cargo` is used to fetch development
dependencies, but when building in release, `cargo` is not required,
only `rustc`. At the moment YJIT requires Rust 1.60.0 or newer.

The YJIT command-line options remain mostly unchanged, and more details
about the build process are documented in `doc/yjit/yjit.md`.

The CI tests have been updated and do not take any more resources than
before.

The development history of the Rust port is available at the following
commit for interested parties:
1fd9573d8b

Our hope is that Rust YJIT will be compiled and included as a part of
system packages and compiled binaries of the Ruby 3.2 release. We do not
anticipate any major problems as Rust is well supported on every
platform which YJIT supports, but to make sure that this process works
smoothly, we would like to reach out to those who take care of building
systems packages before the 3.2 release is shipped and resolve any
issues that may come up.

[issue]: https://bugs.ruby-lang.org/issues/18481

Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
Co-authored-by: Noah Gibbs <the.codefolio.guy@gmail.com>
Co-authored-by: Kevin Newton <kddnewton@gmail.com>
2022-04-27 11:00:22 -04:00
Adrien S
fc7e42a473
Fix yjit readme link pointing to old shopify readme (#5596) 2022-02-24 14:12:17 -05:00
Kazuhiro NISHIYAMA
aff4b2194f
Fix a typo [ci skip] 2022-02-02 09:08:12 +09:00
Noah Gibbs
14967347b9
YJIT stats documentation additions and updates (#5427)
* YJIT documentation additions and updates

* Update yjit.md

Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
2022-01-11 14:17:59 -05:00
Adam Hess
8bde66167f
update YJIT docs to reference RubyVM::YJIT instead of just YJIT
[ci skip]
2021-11-24 20:23:22 -05:00
Maxime Chevalier-Boisvert
cdebf57ec6
Add --yjit-no-type-prop so we can test YJIT without type propagation (#5135)
* 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
2021-11-18 10:44:31 -05:00
Nobuyoshi Nakada
4d4bdcf368
Move the test file 2021-10-21 13:07:48 +09:00
Maxime Chevalier-Boisvert
2e2430564a Update yjit.md 2021-10-20 18:19:43 -04:00
Alan Wu
adcee68aa0 Doc: remove outdated note about hooking into the interpreter
DAE remember MicroJIT?
2021-10-20 18:19:43 -04:00
Alan Wu
8a9a2d0049 Move test_yjit_asm.sh into misc
Since conventionally scripts don't live at the top level of the repo.
2021-10-20 18:19:43 -04:00
Maxime Chevalier-Boisvert
d11ea2520e Update yjit.md 2021-10-20 18:19:43 -04:00
Noah Gibbs
3dd4abfcd0 Move YJIT's README into doc/yjit/yjit.md 2021-10-20 18:19:42 -04:00
Noah Gibbs
6392702375 Incorporate feedback from the PR into yjit_hacking.md 2021-10-20 18:19:42 -04:00
Noah Gibbs
d4a75dd976 Add a YJIT hacking doc with some internals; change the README text a bit to reflect its current condition 2021-10-20 18:19:42 -04:00