v1.2
- Breaking change:
addressis now “internal only” (details and migration) - Rich bounces: not 256 bits, but the full body on bounce
- Cheap builder-to-slice,
StateInit, and address composition - Compilation errors significantly improved
- Anonymous functions supported
- Borrow checker and other stuff related to undefined behavior
v1.1
map<K, V>— a convenient zero-overhead wrapper over TVM dictionariesenum— group numeric constants into a distinct typeprivateandreadonlyfields in structures- Enhanced overload resolution and partial specialization
v1.0
- The magic
lazykeyword — lazy loading, partial loading, partial updating - Auto-detect and inline functions at the compiler level
- Various peephole optimizations for gas efficiency
onInternalMessageandonBouncedMessage, TVM 11 support- Custom pack/unpack serializers for custom types
v0.99
- Universal
createMessage - Universal
createExternalLogMessage - Sharding — calculate addresses “close to another contract”
v0.13
- Auto-packing to/from cells/builders/slices
- Type
address - Lateinit variables
- Defaults for parameters
v0.12
- Structures
struct A { ... } - Generics
struct<T>andtype<T> - Methods
fun Point.getX(self) - Rename stdlib functions to short methods
v0.11
- Type aliases
type NewName = <existing type> - Union types
T1 | T2 | ... - Pattern matching for types
- Operators
isand!is - Pattern matching for expressions
- Semicolon for the last statement in a block can be omitted
v0.10
- Fixed-width integers:
int32,uint64, etc. Details - Type
coinsand functionton("0.05") bytesNandbitsNtypes (backed by slices at TVM level)- Replace
"..."cpostfixes withstringCrc32("...")functions - Support
0b...number literals along with0x... - Trailing comma support
v0.9
- Nullable types
int?,cell?, etc.; null safety - Standard library (asm definitions) updated to reflect nullability
- Smart casts, like in TypeScript in Kotlin
- Operator
!(non-null assertion) - Code after
throwis treated as unreachable - The
nevertype
v0.8
- Syntax
tensorVar.0andtupleVar.0(both for reading and writing) - Allow
cell,slice, etc. to be valid identifiers (not keywords)
v0.7
- Under the hood: refactor compiler internals; AST-level semantic analysis kernel
- Under the hood: rewrite the type system to static typing
- Clear and readable error messages on type mismatch
- Generic functions
fun f<T>(...)and instantiations likef<int>(...) - The
booltype; type casting viavalue as T