Skip to main contentv1.1
map<K, V> — a convenient zero-overhead wrapper over TVM dictionaries
enum — group numeric constants into a distinct type
private and readonly fields in structures
- Enhanced overload resolution and partial specialization
v1.0
- The magic
lazy keyword — lazy loading, partial loading, partial updating
- Auto-detect and inline functions at the compiler level
- Various peephole optimizations for gas efficiency
onInternalMessage and onBouncedMessage, 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> and type<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
is and !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
coins and function ton("0.05")
bytesN and bitsN types (backed by slices at TVM level)
- Replace
"..."c postfixes with stringCrc32("...") functions
- Support
0b... number literals along with 0x...
- 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
throw is treated as unreachable
- The
never type
v0.8
- Syntax
tensorVar.0 and tupleVar.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 like f<int>(...)
- The
bool type; type casting via value as T
v0.6
The first public release. Here are some notes about its origin: