Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Add pragmas to funC for precise control of computation order #589

Merged
merged 6 commits into from
Jan 13, 2023

Conversation

EmelyanenkoK
Copy link
Member

@EmelyanenkoK EmelyanenkoK commented Jan 12, 2023

#pragma allow-post-modification; - allows expressions like var t = (ds, ds~load_uint(32)); and ensures that in such expression all terms are treated left to right. Without pragma such expressions are forbidden.

#pragma compute-asm-ltr; - forces that asm arguments are computed left to right as appear in funC code. Without pragma first reordering in according to asm rules happens and only then arguments are computed.

Also inline functions with empty body now allowed: such inlines have no effect on the bytecode.

This changes introduce funC version 0.4.1

@EmelyanenkoK EmelyanenkoK merged commit 653c88a into ton-blockchain:testnet Jan 13, 2023
@SpyCheese SpyCheese deleted the func-computation-order branch February 2, 2023 13:56
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants