Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
79e46a6
refactor[venom]: decouple venom IR from legacy IRnode
charles-cooper Apr 21, 2026
fdff543
refactor: rename vyper/codegen to vyper/codegen_legacy, create vyper/…
charles-cooper Apr 21, 2026
e58877c
feat: make Venom the default codegen, add --legacy flag
charles-cooper Apr 21, 2026
0457ae7
feat: add legacy key to JSON compiler input API
charles-cooper Apr 21, 2026
0498268
refactor: rename experimental_codegen to legacy_codegen (inverted sem…
charles-cooper Apr 21, 2026
adb6101
chore: fix lint issues from codegen rename
charles-cooper Apr 21, 2026
87fa38b
fix[codegen_venom]: anchor settings before venom codegen
charles-cooper Apr 21, 2026
80c919d
fix: add legacy_codegen=True to legacy-specific tests
charles-cooper Apr 21, 2026
e898b67
Merge branch 'master' into feat/venom-default
charles-cooper May 14, 2026
6d15801
test: cover venom codegen in asm stability tests
charles-cooper May 14, 2026
7ae40b3
test: use compiler_settings for asm DCE pipeline
charles-cooper May 14, 2026
546dfe6
test: replace experimental_codegen fixture with legacy_codegen
charles-cooper May 14, 2026
af60879
chore: remove duplicate legacy jumptable utils
charles-cooper May 15, 2026
2992644
test: rely on venom defaults in venom tests
charles-cooper May 15, 2026
a653b93
Merge branch 'master' into feat/venom-default
HodanPlodky May 17, 2026
3d07b79
disable static asserts in the test for failures
HodanPlodky May 17, 2026
2e0a2f4
lint for test_convert
HodanPlodky May 17, 2026
9c42320
test for `--disable-static-exceptions` fix
HodanPlodky May 17, 2026
6c9cc55
used fixture and correct test
HodanPlodky May 18, 2026
930a886
fix the case for decimals and hex (to have parity with legacy)
HodanPlodky May 18, 2026
5769087
convert int->decimals negative clamp error
HodanPlodky May 18, 2026
c7c7c61
Revert "convert int->decimals negative clamp error" moved to different
HodanPlodky May 19, 2026
363cd88
Revert "fix the case for decimals and hex (to have parity with legacy)"
HodanPlodky May 19, 2026
e565d87
Merge branch 'master' into feat/venom-default
charles-cooper May 30, 2026
4644877
chore: keep legacy codegen default
charles-cooper May 30, 2026
e7e32d6
lint
charles-cooper May 30, 2026
e1d3b49
refactor: remove inline ABI utility imports
charles-cooper May 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
from tests.exports import TestExporter
from tests.utils import working_directory
from vyper import compiler
from vyper.codegen.ir_node import IRnode
from vyper.codegen_legacy.ir_node import IRnode
from vyper.compiler import compile_code
from vyper.compiler.input_bundle import FilesystemInputBundle
from vyper.compiler.settings import OptimizationLevel, Settings, set_global_settings
Expand Down
5 changes: 4 additions & 1 deletion tests/functional/builtins/codegen/test_abi_decode_fuzz.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,10 @@
from eth.codecs import abi

from tests.evm_backends.base_env import EvmError
from vyper.codegen.core import calculate_type_for_external_return, needs_external_call_wrap
from vyper.codegen_shared.abi_utils import (
calculate_type_for_external_return,
needs_external_call_wrap,
)
from vyper.semantics.types import (
AddressT,
BoolT,
Expand Down
2 changes: 1 addition & 1 deletion tests/functional/codegen/test_selector_table.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from hypothesis import given, settings

import vyper.utils as utils
from vyper.codegen.jumptable_utils import (
from vyper.codegen_shared.jumptable_utils import (
generate_dense_jumptable_info,
generate_sparse_jumptable_buckets,
)
Expand Down
2 changes: 1 addition & 1 deletion tests/functional/codegen/test_selector_table_stability.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from vyper.codegen.jumptable_utils import generate_sparse_jumptable_buckets
from vyper.codegen_shared.jumptable_utils import generate_sparse_jumptable_buckets
from vyper.compiler import compile_code
from vyper.compiler.settings import OptimizationLevel, Settings

Expand Down
2 changes: 1 addition & 1 deletion tests/functional/codegen/types/numbers/test_exponents.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from hypothesis import given, settings
from hypothesis import strategies as st

from vyper.codegen.arithmetic import calculate_largest_base, calculate_largest_power
from vyper.codegen_shared.arithmetic import calculate_largest_base, calculate_largest_power
from vyper.compiler import compile_code
from vyper.exceptions import InvalidLiteral

Expand Down
2 changes: 1 addition & 1 deletion tests/functional/codegen/types/test_identifier_naming.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from vyper.ast.identifiers import RESERVED_KEYWORDS
from vyper.builtins.functions import BUILTIN_FUNCTIONS
from vyper.codegen.expr import ENVIRONMENT_VARIABLES
from vyper.codegen_legacy.expr import ENVIRONMENT_VARIABLES
from vyper.exceptions import NamespaceCollision, StructureException, SyntaxException
from vyper.semantics.types.primitives import AddressT

Expand Down
10 changes: 10 additions & 0 deletions tests/functional/syntax/test_for_range.py
Original file line number Diff line number Diff line change
Expand Up @@ -482,6 +482,16 @@ def bar():
(
"""
@external
def bar():
# Tuple targets are invalid Vyper syntax, but should raise SyntaxException.
for i, j in [(1, 2)]:
pass
""",
"invalid for loop syntax: not a name",
),
(
"""
@external
def bar():
for i: in range(0, 1):
pass
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/compiler/ir/test_compile_ir.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import pytest

from vyper.codegen.ir_node import IRnode
from vyper.codegen_legacy.ir_node import IRnode
from vyper.evm.opcodes import version_check
from vyper.ir import compile_ir
from vyper.ir.s_expressions import parse_s_exp
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/compiler/ir/test_optimize_ir.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import pytest

from vyper.codegen.ir_node import IRnode
from vyper.codegen_legacy.ir_node import IRnode
from vyper.evm.opcodes import version_check
from vyper.exceptions import StaticAssertionException
from vyper.ir import optimizer
Expand Down
2 changes: 1 addition & 1 deletion tests/unit/compiler/test_default_settings.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from vyper.codegen import core
from vyper.codegen_legacy import core
from vyper.compiler.phases import CompilerData
from vyper.compiler.settings import OptimizationLevel, _is_debug_mode

Expand Down
8 changes: 8 additions & 0 deletions vyper/ast/parse.py
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,14 @@ def visit_For(self, node):
annotation_tokens = self._pre_parser.for_loop_annotations.pop(key)

if not annotation_tokens:
if not isinstance(node.target, python_ast.Name):
raise SyntaxException(
"invalid for loop syntax: not a name",
self._source_code,
node.target.lineno,
node.target.col_offset,
)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did this sneak in from a different PR ?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

b4145b7 this one but it seems like a diff viewing issue


# a common case for people migrating to 0.4.0, provide a more
# specific error message than "invalid type annotation"
raise SyntaxException(
Expand Down
4 changes: 2 additions & 2 deletions vyper/builtins/_convert.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,26 @@
import math

from vyper import ast as vy_ast
from vyper.codegen.core import (
from vyper.codegen_legacy.core import (
LOAD,
IRnode,
bytes_clamp,
bytes_data_ptr,
clamp,
clamp_basetype,
clamp_le,
get_bytearray_length,
int_clamp,
is_bytes_m_type,
is_decimal_type,
is_flag_type,
is_integer_type,
sar,
shl,
shr,
unwrap_location,
)

Check notice

Code scanning / CodeQL

Cyclic import Note

Import of module
vyper.codegen_legacy.core
begins an import cycle.
from vyper.codegen.expr import Expr
from vyper.codegen_legacy.expr import Expr

Check notice

Code scanning / CodeQL

Cyclic import Note

Import of module
vyper.codegen_legacy.expr
begins an import cycle.
from vyper.exceptions import (
CodegenPanic,
CompilerPanic,
Expand Down
4 changes: 2 additions & 2 deletions vyper/builtins/_signatures.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@

from vyper import ast as vy_ast
from vyper.ast.validation import validate_call_args
from vyper.codegen.expr import Expr
from vyper.codegen.ir_node import IRnode
from vyper.codegen_legacy.expr import Expr

Check notice

Code scanning / CodeQL

Cyclic import Note

Import of module
vyper.codegen_legacy.expr
begins an import cycle.
from vyper.codegen_legacy.ir_node import IRnode
from vyper.exceptions import CompilerPanic, TypeMismatch, UnfoldableNode
from vyper.semantics.analysis.base import Modifiability, StateMutability
from vyper.semantics.analysis.utils import (
Expand Down
12 changes: 6 additions & 6 deletions vyper/builtins/functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,41 +5,41 @@
from vyper import ast as vy_ast
from vyper.abi_types import ABI_Tuple
from vyper.ast.validation import validate_call_args
from vyper.codegen.abi_encoder import abi_encode
from vyper.codegen.context import Context
from vyper.codegen.core import (
from vyper.codegen_legacy.abi_encoder import abi_encode

Check notice

Code scanning / CodeQL

Cyclic import Note

Import of module
vyper.codegen_legacy.abi_encoder
begins an import cycle.
from vyper.codegen_legacy.context import Context
from vyper.codegen_legacy.core import (
LOAD,
STORE,
IRnode,
add_ofst,
bytes_data_ptr,
calculate_type_for_external_return,
check_buffer_overflow_ir,
check_create_operation,
check_external_call,
clamp,
clamp2,
clamp_basetype,
copy_bytes,
create_memory_copy,
dummy_node_for_type,
ensure_eval_once,
ensure_in_memory,
eval_seq,
get_bytearray_length,
get_type_for_exact_size,
ir_tuple_from_args,
make_setter,
potential_overlap,
promote_signed_int,
sar,
shl,
shr,
unwrap_location,
)

Check notice

Code scanning / CodeQL

Cyclic import Note

Import of module
vyper.codegen_legacy.core
begins an import cycle.
from vyper.codegen.expr import Expr
from vyper.codegen.ir_node import Encoding, scope_multi
from vyper.codegen.keccak256_helper import keccak256_helper
from vyper.codegen_legacy.expr import Expr

Check notice

Code scanning / CodeQL

Cyclic import Note

Import of module
vyper.codegen_legacy.expr
begins an import cycle.
from vyper.codegen_legacy.ir_node import Encoding, scope_multi
from vyper.codegen_legacy.keccak256_helper import keccak256_helper

Check notice

Code scanning / CodeQL

Cyclic import Note

Import of module
vyper.codegen_legacy.keccak256_helper
begins an import cycle.
from vyper.evm.address_space import MEMORY
from vyper.evm.opcodes import version_check
from vyper.exceptions import (
Expand Down
2 changes: 1 addition & 1 deletion vyper/cli/vyper_compile.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from typing import Any, Optional

import vyper
import vyper.codegen.ir_node as ir_node
import vyper.codegen_legacy.ir_node as ir_node
import vyper.evm.opcodes as evm
from vyper.cli import vyper_json
from vyper.cli.compile_archive import NotZipInput, compile_from_zip
Expand Down
2 changes: 1 addition & 1 deletion vyper/cli/vyper_ir.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import sys

import vyper
from vyper.codegen.ir_node import IRnode
from vyper.codegen_legacy.ir_node import IRnode
from vyper.ir import compile_ir, optimizer
from vyper.ir.s_expressions import parse_s_exp

Expand Down
182 changes: 0 additions & 182 deletions vyper/codegen/function_definitions/common.py

This file was deleted.

File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
from vyper.codegen.core import (
from vyper.codegen_legacy.core import (
STORE,
add_ofst,
get_dyn_array_count,
get_element_ptr,
is_tuple_like,
make_setter,
zero_pad,
)

Check notice

Code scanning / CodeQL

Cyclic import Note

Import of module
vyper.codegen_legacy.core
begins an import cycle.
from vyper.codegen.ir_node import IRnode
from vyper.codegen_legacy.ir_node import IRnode
from vyper.codegen_shared.abi_utils import abi_encoding_matches_vyper, is_tuple_like
from vyper.evm.address_space import MEMORY
from vyper.exceptions import CompilerPanic
from vyper.semantics.types import DArrayT, SArrayT, _BytestringT
Expand Down Expand Up @@ -118,14 +118,6 @@
return b.resolve(ret)


def abi_encoding_matches_vyper(typ):
"""
returns True if the ABI encoding matches vyper's memory encoding of
a type, otherwise False
"""
return not typ.abi_type.is_dynamic()


# assume dst is a pointer to a buffer located in memory which has at
# least static_size + dynamic_size_bound allocated.
# The basic strategy is this:
Expand Down
Loading
Loading