From folder to executable.
Project manifests and every implemented CHUD command.
One project. One manifest.
[project]
name = "HelloCHUD"
version = "0.1.0"
type = "executable"
entry = "src/Program.chud"
[build]
target = "windows-x64"
optimization = "debug"
[dependencies]The CLI validates TOML, project names, semantic versions, the executable project type, and an entry inside src/. All regular .chud files under src are compiled. Symbolic links are skipped. Dependencies are rejected until package support exists.
Commands you can use today.
| Command | What it does |
|---|---|
chud new Name [--empty] | Creates a console or empty executable project. |
chud build [--release] | Compiles and links the project. |
chud run [--release] | Compiles, then executes on success. |
chud check | Checks project syntax and types without producing an executable. |
chud test [--release] | Compiles and runs standalone CHUD test programs. |
chud clean | Removes the project’s .chud build directory. |
chud --help / --version | Shows supported commands or the tool version. |
Formatting, add/remove/restore, and publish commands are not available.
Keep builds out of source.
Intermediate IR, native objects, and executables live under .chud/debug/ or .chud/release/. Release requests optimization; debug is currently unoptimized code, without source-level debugging metadata. Every invocation rebuilds.
Test with native programs.
public func Main() -> int
{
if 2 + 2 != 4 { return 1; }
return 0;
}chud test builds each tests/**/*.chud file as its own executable. Each needs a Main. Return zero for success. The command fails if no tests exist. Shared library fixtures and an attribute-based test framework are future work.