algorand / algorand/pyteal

Source Mapper: possible conflict on Windows

Đang mở
#710 1 bình luận 1 reaction 1 người được giao Được @tzaffi nhận Xem trên GitHub
new-bug
Ngôn ngữ chính
Python
Star
288
Fork
138
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

Reporting this on behalf of one of our users @ErikHasselWander.
Discord thread: https://discord.com/channels/491256308461207573/1143656409905504406
PyTeal source mapper seems to apparently generate incorrect mapping while on Windows but correct elsewhere.

### Your environment

Windows and WSL.

### Steps to reproduce

#### PyTeal code in both cases
```python
from feature_gates import FeatureGates
FeatureGates.set_sourcemap_enabled(True)

import pyteal as pt

def approval_program() -> pt.Expr:
def create() -> pt.Expr:
return pt.Return(pt.Int(1))

def call() -> pt.Expr:
return pt.Seq(
pt.Pop(pt.Sha256(pt.Txn.sender())),
pt.Return(pt.Int(1))
)

return pt.Cond(
[pt.Global.current_application_id() == pt.Int(0), create()],
[pt.Int(1), call()]
)

if __name__ == "__main__":
print(pt.Compilation(approval_program(), pt.Mode.Application, version=4).compile(
with_sourcemap=True,
annotate_teal=True,
pcs_in_sourcemap=True,
annotate_teal_headers=True,
annotate_teal_concise=True,
).sourcemap.annotated_teal)
```

```shell
python -m venv venv
./venv/bin/activate.ps1
pip install pyteal=0.25.0
python ./test.py
```

### Expected behaviour (captured on WSL)

```
// GENERATED TEAL // PC PYTEAL
#pragma version 4 // (0) pt.Compilation(approval_program(), pt.Mode.Application, version=4).compile(with_sourcemap=True, annotate_teal=True, pcs_in_sourcemap=True, annotate_teal_headers=True, annotate_teal_concise=True)
global CurrentApplicationID // (4) pt.Global.current_application_id()
int 0 // (6) pt.Int(0)
== // (8) pt.Global.current_application_id() == pt.Int(0)
bnz main_l4 // (9)
int 1 // (12) pt.Int(1)
bnz main_l3 // (13)
err // (16) pt.Cond([pt.Global.current_application_id() == pt.Int(0), create()], [pt.Int(1), call()])
main_l3: // pt.Int(1)
txn Sender // (17) pt.Txn.sender()
sha256 // (19) pt.Sha256(pt.Txn.sender())
pop // (20) pt.Pop(pt.Sha256(pt.Txn.sender()))
int 1 // (21) pt.Int(1)
return // (22) pt.Return(pt.Int(1))
main_l4: // pt.Global.current_application_id() == pt.Int(0)
int 1 // (23) pt.Int(1)
return // (24) pt.Return(pt.Int(1))
```

### Actual behaviour (captured on Windows)

```
// GENERATED TEAL // PC PYTEAL
#pragma version 4 // (0) super().__init__(None)
global CurrentApplicationID // (4) super().__init__()
int 0 // (6) super().__init__()
== // (8) super().__init__()
bnz main_l4 // (9)
int 1 // (12) super().__init__()
bnz main_l3 // (13)
err // (16) super().__init__()
main_l3: // super().__init__()
txn Sender // (17) super().__init__()
sha256 // (19) super().__init__()
pop // (20)
int 1 // (21) super().__init__()
return // (22) super().__init__()
main_l4: // super().__init__()
int 1 // (23) super().__init__()
return // (24) super().__init__()
```

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.