History of Tolk
When new versions of Tolk are released, they will be mentioned here.
v0.10
- Fixed-width integers:
int32
,uint64
, etc. Details - Type
coins
and functionton("0.05")
bytesN
andbitsN
types (backed by slices at TVM level)- Replace
"..."c
postfixes 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
throw
is treated as unreachable - The
never
type
v0.8
- Syntax
tensorVar.0
andtupleVar.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 from Hindley-Milner to static typing
- Clear and readable error messages on type mismatch
- Generic functions
fun f<T>(...)
and instantiations likef<int>(...)
- The
bool
type; type casting viavalue as T
v0.6
The first public release. Here are some notes about its origin:
How Tolk was born
In June 2024, I created a pull request FunC v0.5.0. Besides this PR, I've written a roadmap for what can be enhanced in FunC, syntactically and semantically.
Instead of merging v0.5.0 and continuing to develop FunC, we decided to fork it. To leave FunC untouched as it is. As it always was. And to develop a new language driven by a fresh and new name.
For several months, I have worked on Tolk privately. I have implemented a giant list of changes. And it's not only about the syntax. For instance, Tolk has an internal AST representation that is completely missed in FunC.
On TON Gateway, from 1 to 2 November in Dubai, I gave a speech presenting Tolk to the public, and we released it the same day. The video is available on YouTube.
Here is the very first pull request: "Tolk Language: next-generation FunC".
The first version of the Tolk Language is v0.6, a metaphor of FunC v0.5 that missed a chance to occur.
Meaning of the name "Tolk"
Tolk is a wonderful word.
In English, it's consonant with talk. Because, generally, what do we need a language for? We need it to talk to computers.
In all Slavic languages, the root tolk and the phrase "to have tolk" means "to make sense"; "to have deep internals".
But actually, TOLK is an abbreviation.
You know, that TON is The Open Network.
By analogy, TOLK is The Open Language K.
What is K, will you ask? Probably, "kot" — the nick of Nikolay Durov? Or Kolya? Kitten? Kernel? Kit? Knowledge?
The right answer — none of this. This letter does not mean anything. It's open.
The Open Letter K