[前][次][番号順一覧][スレッド一覧]

ruby-changes:73319

From: Maxime <ko1@a...>
Date: Tue, 30 Aug 2022 01:10:22 +0900 (JST)
Subject: [ruby-changes:73319] 5ef048e5b1 (master): Update yjit.md

https://git.ruby-lang.org/ruby.git/commit/?id=5ef048e5b1

From 5ef048e5b1c3dd61adf782ace570bb0a1f9bb12f Mon Sep 17 00:00:00 2001
From: Maxime Chevalier-Boisvert <maximechevalierb@g...>
Date: Wed, 24 Aug 2022 15:13:08 -0400
Subject: Update yjit.md

Add VMIL paper, update supported CPUs.
---
 doc/yjit/yjit.md | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/doc/yjit/yjit.md b/doc/yjit/yjit.md
index f879e227ad..f13fa027b9 100644
--- a/doc/yjit/yjit.md
+++ b/doc/yjit/yjit.md
@@ -20,6 +20,7 @@ This project is open source and falls under the same license as CRuby. https://github.com/ruby/ruby/blob/trunk/doc/yjit/yjit.md#L20
 If you wish to learn more about the approach taken, here are some conference talks and publications:
 - RubyKaigi 2021 talk: [YJIT: Building a New JIT Compiler Inside CRuby](https://www.youtube.com/watch?v=PBVLf3yfMs8)
 - Blog post: [YJIT: Building a New JIT Compiler Inside CRuby](https://pointersgonewild.com/2021/06/02/yjit-building-a-new-jit-compiler-inside-cruby/)
+- VMIL 2021 paper: [YJIT: A Basic Block Versioning JIT Compiler for CRuby](https://dl.acm.org/doi/10.1145/3486606.3486781)
 - MoreVMs 2021 talk: [YJIT: Building a New JIT Compiler Inside CRuby](https://www.youtube.com/watch?v=vucLAqv7qpc)
 - ECOOP 2016 talk: [Interprocedural Type Specialization of JavaScript Programs Without Type Analysis](https://www.youtube.com/watch?v=sRNBY7Ss97A)
 - ECOOP 2016 paper: [Interprocedural Type Specialization of JavaScript Programs Without Type Analysis](https://drops.dagstuhl.de/opus/volltexte/2016/6101/pdf/LIPIcs-ECOOP-2016-7.pdf)
@@ -45,7 +46,7 @@ YJIT is a work in progress and as such may not yet be mature enough for mission- https://github.com/ruby/ruby/blob/trunk/doc/yjit/yjit.md#L46
 
 - No garbage collection for generated code.
 - Currently supports only macOS and Linux.
-- Currently supports only x86-64 CPUs.
+- 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).
 
@@ -308,9 +309,9 @@ You can use the Intel syntax for disassembly in LLDB, keeping it consistent with https://github.com/ruby/ruby/blob/trunk/doc/yjit/yjit.md#L309
 echo "settings set target.x86-disassembly-flavor intel" >> ~/.lldbinit
 ```
 
-## Running YJIT on M1
+## Running x86 YJIT on Apple's Rosetta
 
-It is possible to run YJIT on an Apple M1 via Rosetta.  You can find basic
+For development purposes, it is possible to run x86 YJIT on an Apple M1 via Rosetta.  You can find basic
 instructions below, but there are a few caveats listed further down.
 
 First, install Rosetta:
@@ -343,7 +344,7 @@ $ rustup default stable-x86_64-apple-darwin https://github.com/ruby/ruby/blob/trunk/doc/yjit/yjit.md#L344
 
 While in your i386 shell, install Cargo and Homebrew, then hack away!
 
-### M1 Caveats
+### Rosetta Caveats
 
 1. You must install a version of Homebrew for each architecture
 2. Cargo will install in $HOME/.cargo by default, and I don't know a good way to change architectures after install
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]