Dodo 0.1.3
Dodo 0.1.3 adds simpler printing and web application APIs, concurrent HTTPS,
checked mutable slice splitting, reference collections, and improved editor
navigation. The language specification remains version 0.1.
- Add postfix
!to unwrap a Result or panic on error, preserving?for
propagation. Shorten hello world to a single console call infn main(). - Add safe hosted console input/output and compiler-checked
print,println,
andprintffor primitives and custom printable values. Check literal format
strings and heterogeneous arguments at compile time. - Add bounded UTF-8 console and file helpers, command output capture,
environment conveniences, native clocks, and runnable standard-library
onboarding guides. - Add checked
core/slice.split_at_mutwith disjoint mutable views, nested
splitting, and source lifetimes preserved through moves and returns. - Support checked shared-reference collection elements and shared-arena owned
strings. Add scopedtry_updatemutation for vector elements and hash-map
values, retaining ownership and allocator dependencies on success or error.
Result-bearing and exclusive-reference elements remain restricted. - Fix ownership tracking across
breakandcontinue, including loop-carried
borrows, moved values, and reachable exits. - Add bounded hosted HTTP/HTTPS clients and fluent
app.new()and portable
application.builder()APIs. Provide method shortcuts, named handlers,
middleware, route diagnostics, text/HTML/JSON/redirect responses, request
accessors, explicit rejections, and owned in-process test responses. - Add
std/web/app.Serverwith bounded default storage, grouped limits and
timeouts, custom buffers, cooperative cancellation, and explicit serial or
concurrent execution. The bounded HTTP reactor supports connection reuse and
ordered pipelined requests. - Add
std/web/httpswith bounded PEM loading, file-specific startup diagnostics,
andrun_with(address, https.files(certificate, key)). Support concurrent TLS
handshakes and requests, HTTPS keep-alive, and graceful connection shutdown;
TLS remains an explicit import. - Keep large internal function arguments and results in caller-owned storage
and compact aggregate copies before LLVM lowering, reducing memory use for
composed web applications. Exported and C signatures stay stable. Allow up
to 4,096 generic specializations with a separate nesting limit of 64. - Open bundled standard-library definitions as read-only sources in VS Code,
with hover and navigation inside them. Refresh diagnostics and navigation
when imported files change, preserving unsaved buffers. Add printing
completions, signature help, and snippets. - Make frontend tests and Clippy runnable without LLVM through
--no-default-features. Expand native Windows filesystem, process, console,
thread, synchronization, and networking coverage at-O0and-O3. Give
refused-connection checks a fresh deadline and actionable error diagnostics;
separate HTTP protocol-error checks from short timeout-test deadlines. - Migrate the backend from Inkwell to llvm-sys 231.0.0 and LLVM 23.1.1; source
builds now useLLVM_SYS_231_PREFIX. Update Rust to 1.98.1, refresh Rust/npm
dependencies, and adopt TypeScript 7. The VS Code extension requires
VS Code 1.137 or newer. - Slim compiler archives to the executable, installation instructions, and
license notices; documentation and examples remain available online and in
the source repository. Fix Windows LLVM support-library and linker handling. - Remove
std/text_unicodeand its Unicode data license notice; text trimming
usesText.trim_ascii. Remove the Zed extension and Tree-sitter grammar.
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.3-x86_64-unknown-linux-gnu.tar.gz |
x86-64 Linux with glibc 2.39 or newer, such as Ubuntu 24.04. |
dodo-0.1.3-x86_64-pc-windows-msvc.zip |
x86-64 Windows. LLVM and the compiler's C/C++ runtimes are statically linked. |
dodo-vscode-0.1.3.vsix |
VS Code 1.137 or newer and a separately installed Dodo 0.1.3 compiler. |
The compiler archives contain 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.3.vsix, or use Extensions: Install from VSIX....
See the installation guide, first program, web 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). The removed std/text_unicode module is replaced by ASCII trimming through Text.trim_ascii; Zed and Tree-sitter integrations are no longer included.
Validation
Release CI passed on the release commit:
- Formatting and Clippy with warnings denied, including the LLVM-free frontend configuration.
- Compiler, standard-library, runtime, debugger, HTTP/HTTPS interoperability, ownership, and LSP tests.
- Native Dodo tests and executable documentation at
-O0and-O3. - VS Code grammar tests, VSIX packaging, and integration against the built compiler.
- 26 native Windows executions across 13 filesystem, process, console, thread, synchronization, and networking fixtures, plus extracted Windows release smoke tests.
- Windows/Wine standard-library execution, Linux linkage checks, fully static builds, and clean Ubuntu runtime smoke tests.
The documentation build also passed, including generated PDF/text checks and 3,667 internal link, asset, and search-target checks across 43 pages. Documentation sources are unchanged from that validated commit.