tact
tact copied to clipboard
Tact compiler main repository
## `tsconfig.json` checks - [x] "noUncheckedIndexedAccess": true ## ESLint checks https://typescript-eslint.io/rules - [ ] https://eslint.org/docs/latest/rules/no-console - [ ] "@typescript-eslint/no-unused-vars": [ "error", { args: "all", argsIgnorePattern: "^_", varsIgnorePattern: "^_", destructuredArrayIgnorePattern: "^_",...
Block statements are a [part](https://github.com/tact-lang/tact/blob/9915bd1da208520cd5e823068aeb7cac003d40db/src/grammar/grammar.ohm#L91) of the Tact grammar but those are not processed when converting Ohm.js's CSTs to ASTs. Hence this code snippet ``` fun foo() { { //...
- [x] Improve the changelog for `v1.4.0`: grammar, wording, polishing: - [x] json-schemas -> schemas in changelog: see [this comment](https://github.com/tact-lang/tact/pull/410#pullrequestreview-2112823431) - [x] remove "Inferring `void` type in let statements is...
For instance, the docs say: > As the upper bound of the smart contract state size is around 65,000 items of type `Cell`, it constrains the storage limit of maps...
Related docs issue: https://github.com/tact-lang/tact-docs/issues/251 ### List of planned semantical tests #### Expressions, statements - [X] In functions: pass by value of structs, maps, and contracts (i.e., parameters in functions are...
We need it to port the FunC library Tact generates on demand. Related issue: #526
1. `store_maybe_ref()` as `Builder.storeMaybeRef()`: https://github.com/tact-lang/tact/blob/779b0fe736d423d5047222d2443d1ebe7a5dff1e/stdlib/stdlib.fc#L458-L461 _As mentioned in [Tact chat](https://t.me/tactlang/34030)_ 2. `store_builder()` as `Builder.storeBuilder()`: https://github.com/tact-lang/tact/blob/779b0fe736d423d5047222d2443d1ebe7a5dff1e/stdlib/stdlib.fc#L638-L639
Currently in order to compare two structs between each other one has to manually compare each of the fields, e.g.: ```tact self.s1.a == self.s2.a && self.s1.b == self.s2.b && self.s1.c...
Like what has been done for `let`-statements, see #161.
Pros: * Third-party tools like Blueprint could manage compiler versions according to the one specified in tact.config.json. * People could specify exact compiler versions to ensure reproducible builds in the...