Unsupported constructs
The compiler reports unsupported constructs during trigora dev or deployment, before an Execution can start.
Ordinary computation between durable operations is supported, including one-level destructuring. See Supported language semantics for the complete supported language inventory.
Unsupported syntax
Section titled “Unsupported syntax”- A rest parameter,
*args, a binding pattern, or a second program entry. Entry parameters and defaults that do compile are on Programs. - TypeScript
this, classes, prototypes, generators, and async arrows. - A helper or closure frame that performs a durable operation. Durable operations stay in the program entry. A closure value may live across a wait.
- Classes, traits, macros, and async helpers in Rust. See Rust.
- Stored promises, spread or dynamic arrays inside
Promise.all/Promise.race,.then,Promise.any, andPromise.allSettled. - A bare, assigned, stored, pre-awaited, starred, listed, or nested
gather/race, andasyncio.gather,asyncio.wait, andasyncio.FIRST_COMPLETED. The forms that compile are on Structured concurrency. - Unnamed effects.
effectrequires a non-empty string key. - Non-literal effect keys and event names.
- Executing the Program module as a normal script.
Compile-time behavior
Section titled “Compile-time behavior”Unsupported constructs produce a compile error; Trigora does not substitute a different execution or recovery model. Promise.any and Promise.allSettled are not supported. Support for additional authoring languages is planned.