Error with break inside nested for loop
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- python
調査の方向性
Start by reproducing the nested-loop example with Python 3.8 and uncompyle6 3.7.2, then trace how the bytecode around POP_TOP, JUMP_ABSOLUTE, and FOR_ITER is classified. Done means the sample decompiles with break represented as break rather than continue, without introducing regressions in related loop cases.
索引モデルが issue の本文から書いたものです。
説明
This code fails to decompile under python3.8:
for x in arr_a:
for y in arr_b:
var = True
break
Bytecode:
1 0 LOAD_NAME 0 (arr_a)
2 GET_ITER
>> 4 FOR_ITER 22 (to 28)
6 STORE_NAME 1 (x)
2 8 LOAD_NAME 2 (arr_b)
10 GET_ITER
>> 12 FOR_ITER 12 (to 26)
14 STORE_NAME 3 (y)
3 16 LOAD_CONST 0 (True)
18 STORE_NAME 4 (var)
4 20 POP_TOP
22 JUMP_ABSOLUTE 4
24 JUMP_ABSOLUTE 12
>> 26 JUMP_ABSOLUTE 4
>> 28 LOAD_CONST 1 (None)
30 RETURN_VALUE
Error:
# uncompyle6 version 3.7.2
# Python bytecode 3.8 (3413)
# Decompiled from: Python 3.8.3 (default, May 14 2020, 11:03:12)
# [GCC 9.3.0]
# Embedded file name: ./code.py
# Compiled at: 2020-06-29 18:58:01
# Size of source mod 2**32: 69 bytes
Instruction context:
L. 4 20 POP_TOP
-> 22 CONTINUE 4 'to 4'
24 JUMP_BACK 12 'to 12'
# file __pycache__/code.cpython-38.pyc
# --- This code section failed: ---
L. 1 0 LOAD_NAME arr_a
2 GET_ITER
4 FOR_ITER 28 'to 28'
6 STORE_NAME x
L. 2 8 LOAD_NAME arr_b
10 GET_ITER
12 FOR_ITER 26 'to 26'
14 STORE_NAME y
L. 3 16 LOAD_CONST True
18 STORE_NAME var
L. 4 20 POP_TOP
22 CONTINUE 4 'to 4'
24 JUMP_BACK 12 'to 12'
26 JUMP_BACK 4 'to 4'
Parse error at or near `CONTINUE' instruction at offset 22
This seems to be caused by the 'break' being recognised as a 'continue'?
- 主要言語
- Python
- スター
- 4.3k
- フォーク
- 465
- 平均マージ
- 4日 11時間
- マージ済み PR(30日)
- 3
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
rocky/python-uncompyle6 のほかの issue
-
Works on decompyle3
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
rocky/python-uncompyle6#506 · コメント 1 件 ·
-
Python 3.8 Volunteer wanted Works on decompyle3
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
rocky/python-uncompyle6#492 · コメント 4 件 ·
-
Redundant "else:"オープンControl Flow Python 3.8 Volunteer wanted Works on decompyle3
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
rocky/python-uncompyle6#486 ·
-
Missing "While True"オープンControl Flow Python 3.8 Volunteer wanted Works on decompyle3
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
rocky/python-uncompyle6#485 · コメント 4 件 ·
-
Duplicate Python 3.9+
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
rocky/python-uncompyle6#484 · リアクション 9 件 ·
rocky/python-uncompyle6 の issue をすべて見る
似ている issue
-
docs pydanty:is-working
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
pydantic/pydantic-ai#10113 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
GreedyBear-Project/GreedyBear#1727 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
ARM-software/CMSIS-DSP#354 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
kiat/codeAssist#391 ·
-
needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
darnitdevorg/darnit#587 ·
メンテナーはふだん 1 日以内に返信