Part 6: Intentional Limitations
udewy deliberately omits features to keep the compiler simple and auditable:
- No indexing syntax (
arr[i]): Would require type information to know element size - No runtime array literal syntax: square brackets remain available in prelude metadata, ignored type declarations, and bracketed type annotations
- No value casts (
as): Would require type-aware conversion - No string interpolation: Strings are simple byte sequences
- No closures or nested functions: Functions only at top level
- No function overloading: Each function name has exactly one definition
- Expression
and/orare bitwise: Both sides are always evaluated; onlyif/loopconditions short-circuit - No floating-point: Everything is 64-bit integers (with the caveat that float-bit helpers exist for extern ABI interop)
- No garbage collection: Manual memory management via syscalls