20. Exclusions
Absent from Base, each with the reason it is not a loss:
- The preprocessor, conditional compilation, macros. Generics, constants, per-target modules,
asm ARCH, andluce bindcover every use; no successor language regrets this. - Implicit numeric conversion. The source of half of C's integer bugs. Literals still adapt to context.
NULLand nullable-by-default pointers.T*?.->. Auto-dereference on..- Braces, semicolons,
&&,||,!,++,--, the comma operator, statement expressions,do while,switchfallthrough. One parser, one formatter, one spelling per idea. goto. Reserved (§8.6).setjmp/longjmp. ISO C, but incompatible withdefer,errdefer, and initialisation analysis. Alongjmpthrough a Base frame is undefined. A library that reports errors through it (libpng, libjpeg, the Lua C API) is bound through ashims.cfunction that contains thesetjmpand returns a status.- Computed goto, VLAs,
alloca,restrict,register,long double,_Complex. GNU extensions, not representable by the backends, or not portable. - Variadic function definitions and bit-field widths in Base structs. Deferred until the export and layout rules have a corpus behind them.
- Classes, reference counting, closures, built-in collections, owned strings, workers. The runtime. Use full Luce.