From 2812a57b14de8bfab7feccb7924039edc2611aad Mon Sep 17 00:00:00 2001 From: Maxime Chevalier-Boisvert Date: Thu, 27 Oct 2022 16:50:00 -0400 Subject: [PATCH] Update docs wrt YJIT limitations and building YJIT (#6641) * Update docs wrt YJIT limitations and building YJIT * Update building_ruby.md Fix relative link --- doc/contributing/building_ruby.md | 1 + doc/yjit/yjit.md | 10 +++------- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/doc/contributing/building_ruby.md b/doc/contributing/building_ruby.md index 52d6042ec3..d2f175f4a9 100644 --- a/doc/contributing/building_ruby.md +++ b/doc/contributing/building_ruby.md @@ -18,6 +18,7 @@ * libffi * libyaml * libexecinfo (FreeBSD) + * rustc - 1.58.1 or later (if you wish to build [YJIT](/doc/yjit/yjit.md)) 3. Checkout the CRuby source code: diff --git a/doc/yjit/yjit.md b/doc/yjit/yjit.md index d4a15d0c77..bf11eb523d 100644 --- a/doc/yjit/yjit.md +++ b/doc/yjit/yjit.md @@ -41,13 +41,9 @@ To cite this repository in your publications, please use this bibtex snippet: ## Current Limitations -YJIT is a work in progress and as such may not yet be mature enough for mission-critical software. Below is a list of known limitations, all of which we plan to eventually address: - -- No garbage collection for generated code. -- Currently supports only macOS and Linux. -- Supports x86-64 and arm64/aarch64 CPUs only. - -Because there is no GC for generated code yet, your software could run out of executable memory if it is large enough. You can change how much executable memory is allocated using [YJIT's command-line options](#command-line-options). +YJIT may not be suitable for certain applications. It currently only supports macOS and Linux on x86-64 and arm64/aarch64 CPUs. YJIT will use more memory than the Ruby interpreter because the JIT compiler needs to generate machine code in memory and maintain additional state +information. +You can change how much executable memory is allocated using [YJIT's command-line options](#command-line-options). There is a slight performance tradeoff because allocating less executable memory could result in the generated machine code being collected more often. ## Installation