1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-02-15 04:32:21 +00:00
Commit graph

9 commits

Author SHA1 Message Date
Aleksandr Kirsanov
7b8268d99f
[FunC] Deprecate method_id specifier, introduce get keyword
`get` keyword behaves exactly like `method_id` (auto-calc hash),
but it's placed on the left, similar to Tact: `get T name()`.

`method_id(n)` is still valid, considering it can't be invoked by name,
since a client will compute another hash.
It's supposed it will be still used in tests and in low-level code
(not to be called externally, but to be called after replacing c3).

`get(hash)` is invalid, this keyword does not accept anything.
2024-06-14 15:22:59 +03:00
Aleksandr Kirsanov
7afa9292c3
[FunC] Change priority of & | ^ operators to a more intuitive one
Before, such code `if (slices_equal() & status == 1)` was parsed
as `if( (slices_equal()&status) == 1 )`.
Note, that this change leads to hash changes of some verified contracts,
but a new priority is more expected from the user experience.
2024-06-14 15:22:59 +03:00
Aleksandr Kirsanov
de570873d7
[FunC] Add builtin functions to stdlib.fc
Note, that I have not added all builtin functions.
I filtered out strange and actually unused in practice,
like "int_at()" and similar, or "run_method0()" and similar.
(Probably, they should be dropped off even from builtins)

Also, I've modified some stdlib.fc legacy tests just to ensure
that a resulting hash doesn't change.
2024-06-14 15:22:58 +03:00
Aleksandr Kirsanov
85c60d1263
[FunC] Make all functions impure by default, add "pure" specifier 2024-06-14 15:22:57 +03:00
Aleksandr Kirsanov
a3e9e03019
[FunC] Fixed some impure specifiers in stdlib.fc 2024-06-14 15:22:57 +03:00
Aleksandr Kirsanov
f217a7d312
[FunC] Forbid auto-creating undefined symbols 2024-06-14 15:22:57 +03:00
Aleksandr Kirsanov
4994ae8edd
[FunC] Convert stdlib.fc to traditional-style //comments 2024-06-14 15:22:57 +03:00
Aleksandr Kirsanov
a174f858be
[FunC] Apply camelCase to some tests to ensure code_hash remains unchanged
In auto-tests, @code_hash controls bytecode stability.
In legacy tests, expected hashes are specified in a separate file.
2024-06-14 15:22:57 +03:00
EmelyanenkoK
6b49d6a382
Add legacy_tester for existing funC contracts (#588)
* Add legacy_tester for existing funC contracts

* Add storage-contracts and pragma options
2023-01-12 12:33:15 +03:00