python / python/cpython

Start tracing at `JUMP_BACKWARD_NO_INTERRUPT`

オープン
#146,074 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

interpreter-core topic-JIT type-feature
主要言語
Python
スター
77.2k
フォーク
35.9k
PR マージ指標
PR 指標を取得中

説明

Feature or enhancement

Proposal:

We have just added the ability to start tracing at the beginning of functions.
That still leaves yield from and await loops to be run in the interpreter without jitting.
By starting tracing at JUMP_BACKWARD_NO_INTERRUPT we fill that gap.

Before we can do that, there are two problems we need to fix:

Once those are fixed, this should give us good jit coverage without degrading the quality of the traces.

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず issue 145047 と 146073 を読んでください。この提案は両方が修正されることに依存しています。次に、JUMP_BACKWARD_NO_INTERRUPT に対する CPython の tracing と JIT の処理を、既存の関数開始時の tracing の挙動も含めて調査してください。yield from と await のループがそこで tracing を開始でき、trace の品質を低下させない状態になれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
compilers
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。