1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00
ton/tolk
tolk-vm 1389ff6789
[Tolk] Change order of assignment evaluation, lhs first
In FunC (and in Tolk before), the assignment
> lhs = rhs
evaluation order (at IR level) was "rhs first, lhs second".
In practice, this did not matter, because lhs could only
be a primitive:
> (v1, v2) = getValue()
Left side of assignment actually has no "evaluation".
Since Tolk implemented indexed access, there could be
> getTensor().0 = getValue()
or (in the future)
> getObject().field = getValue()
where evaluation order becomes significant.

Now evaluation order will be to "lhs first, rhs second"
(more expected from user's point of view), which will become
significant when building control flow graph.
2025-02-24 20:11:13 +03:00
..
abscode.cpp [Tolk] Support syntax tensorVar.0 and tupleVar.0 2025-01-27 15:30:21 +03:00
analyzer.cpp [Tolk] Refactor: get rid of split_vars, construct valid LET ops 2025-01-27 15:30:21 +03:00
asmops.cpp [Tolk] Support syntax tensorVar.0 and tupleVar.0 2025-01-27 15:30:21 +03:00
ast-from-tokens.cpp [Tolk] Allow cell and slice be valid identifiers 2025-01-27 15:30:21 +03:00
ast-from-tokens.h [Tolk] AST-based semantic analysis, get rid of Expr 2025-01-13 20:28:44 +07:00
ast-replacer.h [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
ast-replicator.h [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
ast-stringifier.h [Tolk] Change order of assignment evaluation, lhs first 2025-02-24 20:11:13 +03:00
ast-visitor.h [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
ast.cpp [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
ast.h [Tolk] Support syntax tensorVar.0 and tupleVar.0 2025-01-27 15:30:21 +03:00
builtins.cpp [Tolk] Support syntax tensorVar.0 and tupleVar.0 2025-01-27 15:30:21 +03:00
CMakeLists.txt [Tolk] bool type (-1/0 int under the hood) 2025-01-15 15:38:47 +03:00
codegen.cpp [Tolk] Support syntax tensorVar.0 and tupleVar.0 2025-01-27 15:30:21 +03:00
compiler-state.cpp [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
compiler-state.h [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
constant-evaluator.cpp [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
constant-evaluator.h [Tolk] AST-based semantic analysis, get rid of Expr 2025-01-13 20:28:44 +07:00
fwd-declarations.h [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
generics-helpers.cpp [Tolk] Refactor: get rid of split_vars, construct valid LET ops 2025-01-27 15:30:21 +03:00
generics-helpers.h [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
lexer.cpp [Tolk] Allow cell and slice be valid identifiers 2025-01-27 15:30:21 +03:00
lexer.h [Tolk] Allow cell and slice be valid identifiers 2025-01-27 15:30:21 +03:00
optimize.cpp [Tolk] Embedded stdlib.tolk, CompilerState, strict includes 2024-11-02 01:33:08 +04:00
pipe-ast-to-legacy.cpp [Tolk] Change order of assignment evaluation, lhs first 2025-02-24 20:11:13 +03:00
pipe-calc-rvalue-lvalue.cpp [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
pipe-check-pure-impure.cpp [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
pipe-check-rvalue-lvalue.cpp [Tolk] Support syntax tensorVar.0 and tupleVar.0 2025-01-27 15:30:21 +03:00
pipe-constant-folding.cpp [Tolk] Change order of assignment evaluation, lhs first 2025-02-24 20:11:13 +03:00
pipe-detect-unreachable.cpp [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
pipe-discover-parse-sources.cpp [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
pipe-find-unused-symbols.cpp [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
pipe-generate-fif-output.cpp [Tolk] Refactor: get rid of split_vars, construct valid LET ops 2025-01-27 15:30:21 +03:00
pipe-infer-types-and-calls.cpp [Tolk] Change order of assignment evaluation, lhs first 2025-02-24 20:11:13 +03:00
pipe-optimize-boolean-expr.cpp [Tolk] Change order of assignment evaluation, lhs first 2025-02-24 20:11:13 +03:00
pipe-refine-lvalue-for-mutate.cpp [Tolk] Refactor: get rid of split_vars, construct valid LET ops 2025-01-27 15:30:21 +03:00
pipe-register-symbols.cpp [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
pipe-resolve-identifiers.cpp [Tolk] bool type (-1/0 int under the hood) 2025-01-15 15:38:47 +03:00
pipeline.h [Tolk] bool type (-1/0 int under the hood) 2025-01-15 15:38:47 +03:00
platform-utils.h [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
src-file.cpp [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
src-file.h [Tolk] Rewrite the type system from Hindley-Milner to static typing 2025-01-15 15:38:43 +03:00
stack-transform.cpp [Tolk] Initial commit of TOLK Language: fork all sources from FunC 2024-11-02 01:33:08 +04:00
symtable.cpp [Tolk] Refactor: get rid of split_vars, construct valid LET ops 2025-01-27 15:30:21 +03:00
symtable.h [Tolk] Refactor: get rid of split_vars, construct valid LET ops 2025-01-27 15:30:21 +03:00
tolk-main.cpp [Tolk] Completely rework stdlib: multiple files and renaming 2024-11-02 03:44:13 +04:00
tolk-version.h [Tolk] Bump version to v0.8 2025-01-27 15:30:21 +03:00
tolk-wasm.cpp [Tolk] Completely rework stdlib: multiple files and renaming 2024-11-02 03:44:13 +04:00
tolk.cpp [Tolk] bool type (-1/0 int under the hood) 2025-01-15 15:38:47 +03:00
tolk.h [Tolk] Support syntax tensorVar.0 and tupleVar.0 2025-01-27 15:30:21 +03:00
type-system.cpp [Tolk] Allow cell and slice be valid identifiers 2025-01-27 15:30:21 +03:00
type-system.h [Tolk] Refactor: get rid of split_vars, construct valid LET ops 2025-01-27 15:30:21 +03:00