Dab language
Planned Dab 0.1 acceptance contract
Planned Dab 0.1 acceptance contract
Status: planned evolution target; not implemented or released.
This page is the concise public guide to the planned Dab 0.1 finish line. It does not establish present compiler, VM, standard-library, Rings, or safety behavior.
The acceptance target
Dab 0.1 is planned to accept one complete source program without source
changes: the provisional wordfreq bare CLI. The target is
met only when that program compiles and passes its complete behavioral
acceptance contract. A page, example, or planned API is not evidence that the
current prototype implements it.
The program is deliberately substantial: it exercises command-line parsing, standard input and files, strict UTF-8 processing, Unicode word boundaries, collections and sorting, errors, resource cleanup, standard streams, and process status. Its source remains provisional until the relevant language and standard-library contracts have passed their gates.
Planned evolution, not present behavior
The planned transition keeps the existing implementation as an incremental
starting point. Through the target, .dabm is intended to select the canonical
modern Ruby-esque syntax while .dab continues to select the legacy syntax;
both are intended to share one semantic pipeline, bytecode format, VM, and
standard-library image. This is a plan, not a feature currently claimed by
this site.
The target does not imply that all longer-term design decisions are required or implemented. It excludes, among other future work, a new backend, a full rewrite, general-purpose production claims, unrestricted unsafe execution, and unaccepted API semantics.
Public contract
This page and the complete provisional wordfreq program
carry the public Dab 0.1 plan directly; readers do not need a separate planning
Wiki to understand the target. For implementation truth, use the repository
source and tests. For the longer horizon, see the Dab 1.0 design vision.
Every step toward this contract must preserve explicit evidence,
compatibility decisions, safety boundaries, and stop conditions.