Dodo 0.1.4 adds optional project manifests, typed JSON codecs, editor inlay
hints and quick fixes, and a complete standard-library API reference. It also
improves compiler correctness and JSON and web performance. The language
specification remains version 0.1.
- Add optional
dodo.tomlmanifests with named targets, profiles, saved run
arguments, hosted test settings, and configuration inspection. Preserve
standalone source compilation and thecompilealias. - Add an owned TOML 1.0 parser and shared CLI option definitions without adding
dependencies. Improve command help, option syntax, and diagnostics; support
-b, standalone--release, test debug information, and quiet/verbose output. - Add non-overwriting project initialization and shell completion generation.
Let the language server and VS Code select manifest targets and reload their
platform settings when the manifest changes. - Send build/check status to stderr and return exit 2 for CLI usage errors.
Build/configuration/test failures retain exit 1; run preserves the child status. - Add portable
std/encoding/jsoncodecs with@derive(Json)for structs,
checked field conversion, field renaming, optional unknown-field rejection,
borrowed values and strings, caller-owned output, and streaming I/O helpers. - Optimize JSON validation, escaped strings, indexed object lookup, and derived
array and struct decoding. Add repeatable benchmarks and recorded results. - Reuse web routing metadata and validated paths, index dynamic route prefixes,
preserve captured parameters, and scan HTTP headers sequentially. Expand
routing regression tests and loopback HTTP performance measurements. - Add inferred local-type inlay hints and diagnostic quick fixes for mutable
bindings and missing package imports. Use structured diagnostic data for
fixes, and reject editor renames that would introduce name collisions. - Fix definite initialization at unconditional loop exits, ownership checks,
and short-circuit expression state. Extend control-flow analysis and use it
for supported function bodies while retaining checks for other bodies. - Make constant integer-to-
f32conversions match runtime conversions and fix
floating-point cast edge cases. Correct Windows child-process exit statuses
and filesystem path discovery edge cases. - Fix overlapping borrows when moving fixed-vector elements between slots,
restoring checked vector insertion, removal, and collection mutation. - Rework documentation into beginner guides and a separate reference. Add a
generated API reference covering every bundled standard-library package,
runnable examples, project-manifest guidance, and stronger documentation
link and search checks.
The compiler still implements a subset of the language design. See the
implementation status and limits
for supported behavior and remaining work.
Install
| Download | Requirements |
|---|---|
dodo-0.1.4-x86_64-unknown-linux-gnu.tar.gz |
x86-64 Linux with glibc 2.39 or newer, such as Ubuntu 24.04. |
dodo-0.1.4-x86_64-pc-windows-msvc.zip |
x86-64 Windows. LLVM and the compiler's C/C++ runtimes are statically linked. |
dodo-vscode-0.1.4.vsix |
VS Code 1.137 or newer and a separately installed Dodo 0.1.4 compiler. |
The compiler archives include the executable, installation instructions, and dependency license notices. LLVM and the Dodo standard library are embedded. Documentation and examples are available online and in the source repository.
Checking source and emitting objects need no external compiler tools. Building or running native programs requires a C toolchain: cc on Linux, or Clang plus Visual Studio C++ Build Tools and a Windows SDK on Windows (DODO_CC=clang or --linker clang).
Install the VS Code extension with code --install-extension dodo-vscode-0.1.4.vsix, or use Extensions: Install from VSIX....
See the installation guide, first program, project manifests, JSON guide, and editor setup. Other systems can build from source.
Compatibility
The language version remains 0.1. Source builds require Rust 1.98.1 and LLVM 23.1.1 (LLVM_SYS_231_PREFIX). Project manifests are optional; standalone source compilation and the compile alias remain supported.
Scripts that consume CLI output should account for build/check status moving to stderr and usage errors returning exit 2. Build, configuration, and test failures return exit 1; dodo run preserves the child process status. Install the matching 0.1.4 compiler to use the extension's new inlay hints, quick fixes, and manifest settings.
Validation
Release CI passed on release commit 326003d545364e209faf2515702f2ef2682e9bb4:
- Formatting and Clippy with warnings denied, including LLVM-free frontend checks on Linux and Windows.
- Compiler, standard-library, runtime, debugger, HTTP/HTTPS interoperability, ownership, JSON, project CLI, and LSP tests.
- Native Dodo tests and executable documentation at
-O0and-O3. - VS Code grammar tests, VSIX packaging, and integration against the built compiler.
- Native Windows platform tests and extracted Windows release smoke tests.
- Windows/Wine standard-library execution, Linux linkage checks, fully static builds, and clean Ubuntu runtime smoke tests.
The documentation workflow also passed, including generated PDF/text and API-reference checks, and deployed the updated site.