Generated: 1781835457
Source: sources/negcaps/structured-negative-capabilities.json
Purpose: Knowing exactly what doesn't work is how we plan what to build next.
These will never be claimed. They are design boundaries, not gaps.
Non-claim: Not a GNU m4 replacement until all courts sealed
Justification: Replacement claim requires 100% surface parity. This is the terminal goal, not a deferral.
Dependencies: ALL_COURTS_SEALED
Non-claim: Not a security sandbox
Justification: m4 is a macro processor, not a sandbox. syscmd/esyscmd execute arbitrary commands by design. This matches GNU m4 behavior.
Non-claim: Unicode correctness not claimed
Justification: GNU m4 is byte-oriented (eight-bit-clean). m4-rs follows this design: core operates on bytes, not Unicode.
Non-claim: Performance parity not claimed
Justification: Byte-exact behavior is the target, not wall-clock performance. Performance may be better or worse.
Non-claim: Build-system compatibility not claimed
Justification: Different build systems (autotools vs cargo). Output behavior is the only comparandum.
True for some m4 variants, not portable claims.
Non-claim: Vendor m4 parity not claimed from GNU m4 parity
Justification: A receipt against gnu_m4_1_4_20_default does not imply busybox_m4, bsd_m4, or system_m4 parity. Each is a separate profile.
Non-claim: POSIX conformance not claimed
Justification: GNU m4 extends POSIX significantly. Posix-mode requires separate admission.
Non-claim: Not an Autoconf replacement
Justification: Autoconf is a framework built on m4, not just macro expansion. Autoconf survival is a separate parity ladder.
Dependencies: M4.AUTOCONF.SEED.1
Will be claimed when dependencies are sealed. Each has a specific dependency chain.
Non-claim: Frozen file parity not claimed
Justification: Depends on: macro table (M4.DEFINE.1), diversion system (M4.DIVERT.1), quote/comment config serialization, pushdef stack serialization, version mismatch handling. Cannot be sealed before Phase 10.
Dependencies: M4.DEFINE.1, M4.DIVERT.1, M4.QUOTE.1
Target Phase: 10
Non-claim: Shell command parity not claimed
Justification: Depends on: sandboxed test infrastructure, child process management, exit code capture, stderr passthrough semantics. syscmd/esyscmd/sysval all depend on each other.
Dependencies: M4.SYSCMD.1
Target Phase: 9
Non-claim: Diagnostic byte parity not claimed
Justification: Depends on: i18n decisions (15 language translations), oracle version stability, errprint/file/line/m4exit implementation, full diagnostic taxonomy. Byte-exact diagnostic matching is the most version-sensitive surface.
Dependencies: M4.DIAG.1
Target Phase: 8
Non-claim: Resource-exhaustion resistance not claimed
Justification: Will be tested in hostile/fuzz phases. Requires: recursion limit, input size limits, diversion buffer limits, panic-free error paths.
Dependencies: M4.HOSTILE.1, M4.FUZZ.1
Target Phase: 12
Non-claim: Autoconf survival not claimed
Justification: Multi-stage ladder: seed macros → macro files → autom4te invocation → configure generation → configure execution. Depends on virtually all builtins being sealed first.
Dependencies: ALL_BUILTINS_SEALED, M4.FROZEN.1, M4.DIVERT.1
Target Phase: 11
Non-claim: Trace/debug parity not claimed
Justification: Depends on: full expansion engine, line tracking, debug flags, dumpdef, output redirection.
Dependencies: M4.EXPAND.1, M4.INPUT.1
Target Phase: 8
Not yet started. These are the active implementation targets.
Non-claim: eval/incr/decr arithmetic not implemented
Justification:
Complexity: high
Non-claim: format builtin not implemented
Justification:
Complexity: medium
Non-claim: Text builtins (len/index/substr/translit/regexp/patsubst) not implemented
Justification:
Complexity: medium
Non-claim: Diversion system not implemented
Justification:
Complexity: high
Non-claim: File inclusion (include/sinclude) not implemented
Justification:
Complexity: medium
Non-claim: Conditional builtins (ifdef/ifelse/shift) not implemented
Justification:
Complexity: medium
Non-claim: Indirect calls (builtin/indir) not implemented
Justification:
Complexity: medium
Non-claim: defn not implemented
Justification:
Complexity: low
Non-claim: Diagnostic builtins (errprint/file/line/m4exit/m4wrap) not implemented
Justification:
Complexity: low
Non-claim: Shell builtins (syscmd/esyscmd/sysval/maketemp/mkstemp) not implemented
Justification:
Complexity: medium
Non-claim: Syncline output (-s) not implemented
Justification:
Complexity: low
Non-claim: POSIX traditional mode (-G) not implemented
Justification:
Complexity: high
- Fix lexer multi-byte delimiter scanning
- Implement $0-$9,
$#, $ @, $* substitution - Implement proper rescanning
- Implement quote stripping during expansion
- Implement expansion during argument collection
- Wire input stack, lexer, engine together
- Implement diversion system (output.c parity)
- Implement line number tracking
- Implement eval arithmetic engine
- Implement format builtin