The Tessera Book
Appendix D

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.int and rand.float are not safe for secrets; use rand.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_INDEX at 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.