What Is Not There Yet
Tessera is young. The core language is close to complete; most of what's missing is around it. Here is a plain list, so you know before you start.
Platforms
- macOS and Linux only. There is no Windows support: tasks, the event loop and the sandbox are written for those two systems.
- Linux on arm64 is tested; x86-64 builds, but hasn't been run on real hardware.
- No cross-compilation and no WebAssembly target.
Standard library
- No encryption, no streaming hashes, and no compression.
rand.intandrand.floatare not safe for secrets; userand.bytes.- Unicode support stops at splitting a string into characters with
chars(). - The HTTP server has no timeouts yet, so an idle keep-alive connection holds its task until the client closes it.
Tooling
- No debugger mapping (native code is C without line information pointing back to Tessera), profiler or test coverage.
- Builds of large programs spend a few seconds in the C compiler, and checking isn't incremental.
Distribution
- No prebuilt releases or packages: you build the compiler from source (chapter 1).
- The package index has no hosted default; you point
TESSERA_INDEXat one. - No stability promise yet: the language may still change.
Language
- No default parameter values. Named arguments make long parameter lists readable, but every argument is still passed.
- No integer types besides
Int, outside of C calls. - No code generation for repetitive cases, such as converting a struct to and from JSON; you write those functions by hand, as chapter 14 does.
- C callbacks can't be kept by C for later; they're valid only during the call they were passed to.
None of these is a matter of principle. They're simply not done.