Compiler and modules
Working
- Token-based lexer and parser with structured statement, expression, and type AST nodes.
- Name resolution, type checking, overload resolution, control-flow checks, and Dudu-source diagnostics.
- Canonical multi-file module identities, qualified and selective imports, aliases, collision diagnostics, and cycle diagnostics.
- One generated C++ header/source pair per Dudu module, with CMake-backed incremental native builds.
- Readable C++20 output and direct access to generated files.
Remaining
- Remove the remaining merged-output compatibility backend and residual source-text compatibility paths.
- Finish separating parser, resolver, type checker, lowering, diagnostics, formatter, and editor responsibilities.
- Broaden incremental analysis caching and dependency invalidation for large module graphs.
- Stabilize public module behavior and the generated C++ ABI.
Language
Working
- Python-shaped functions, classes, loops, imports, indexing, inference, and named arguments.
- Fixed-width scalar types, pointers, references, const data, explicit allocation, fixed arrays, and inferred literal shapes.
- Constructors, destructors, methods, static data, inheritance, abstract methods, overrides, and operator overloads.
- Type and non-type generics, extent expressions, arbitrary-rank indexing syntax, slices, ellipsis, new axes, and library-defined indexing operators.
- Payload enums, exhaustive match,
Option,Result, and C++ exception interop.
Remaining
- Extend realistic numerical-library validation beyond the current fixed-array, tensor, BLAS, and OpenCL fixtures.
- Harden generic overload diagnostics, pack constraints, and dependent native-template behavior.
- Complete the accepted inheritance and abstract-class test matrix against native C++ bases.
- Keep user-defined macros and protocol-style extension syntax out until their semantics are settled.
C and C++ interop
Working
- Clang-backed imports for C headers, C++ headers, namespaces, classes, functions, constants, macros, overloads, and templates.
- System and local header paths, package-config inputs, CMake projects, native source files, and linked libraries.
- Cold and cached native symbol identities used by compilation, hover, definitions, and references.
- Dogfood coverage through SDL3, raylib, ImGui, glm, SQLite, POSIX, and the C++ standard library.
Remaining
- Expand the published native-library compatibility matrix with repeatable optional probes.
- Improve diagnostics for unsupported declaration-generating macros and difficult template failures.
- Validate more Vulkan, FFmpeg, OpenCL, BLAS, embedded, and platform SDK use cases without wrapper-specific compiler code.
Tools and editor
Working
dudu new,build,run,test,fmt,check,clean, path/Git dependencies, and lockfiles.- Semantic highlighting, diagnostics, hover, definitions, references, completion, signature help, inlay hints, formatting, and code actions.
- Editor recovery that keeps parser-level highlighting and diagnostics available while a file is temporarily invalid.
Remaining
- Keep warm editor requests fast in large and native-header-heavy workspaces.
- Finish AST-backed formatter and code-action cleanup, including malformed-source fixtures.
- Publish and maintain the VS Code/Open VSX extension as part of tagged releases.
Releases and platforms
- Linux source installation, tagged archives, checksums, installer update/rollback, VSIX, Debian, AUR, and Homebrew recipes are implemented.
- Apple Silicon uses tagged source builds until native macOS validation is routine.
- Windows packaging, broader embedded/freestanding policy, and additional architecture coverage remain.
0.1.0-alpha.13 is the current alpha release. Language syntax and generated ABI compatibility may still change.
ChangelogConcrete changes in the current release line.Known limitationsCurrent host, language, native interop, package, and tooling boundaries.Native compatibilityRepeatable C and C++ library probes and their latest local status.IssuesOpen bugs, feature work, and discussions.
Contribute
Dudu is dual-licensed under MIT or Apache-2.0. Read the developer guide, run the fast local checks, and open focused issues or pull requests.