Dewy is a general purpose programming language with a focus on engineering.
NOTE: Still very work in progress, and the docs (including this README) are frequently out of date!
The main compiler lives under dewy/
A VS Code extension with a TextMate grammar for Dewy lives under dewy/vscode-dewy/ (not yet published to the marketplace; install it from the folder with code --install-extension after packaging, or symlink it into ~/.vscode/extensions).
The micro subset, udewy, is largely feature complete and available under udewy/. Currently only supports linux x86_64.
A vscode extension for syntax highlighting is available at https://marketplace.visualstudio.com/items?itemName=RedFoxLabs.udewy
Linux x86_64 with glibc 2.34 or newer. This installs the verified native dewy/udewy compiler pair and its matching library into ~/.dewy:
curl -fsSL https://dewy-lang.org/install.sh | bash
The installed compilers run without Python. Run a program with:
dewy path/to/my_script.dewy
Update both the Dewy compiler and the udewy bootstrap binary to the latest published version with:
dewy update
This is a development toolchain. Native self-bootstrap is verified, but some hosted features remain unsupported; see the native parity notes. The hosted compiler remains available from a checkout with Python 3.14 or newer:
python -m dewy path/to/my_script.dewy
udewy programs can also be run with python -m udewy from a checkout.
The hero program on the dewy-lang.org front page lives at examples/hero.dewy and runs today:
python -m dewy examples/hero.dewy
For more working programs, see the executable fixtures in dewy/tests/ (each one compiles and runs in CI) and the curated, status-labeled examples on the site examples page. Implementation status for every language feature is tracked in dewy/status.md.
Programs written for the previous interpreter implementation are archived in examples/old/; most have not yet been ported to the current compiler.
Just an (unsorted) collection of common buzzwords that apply to Dewy
- expression oriented
- statically compiled
- strongly typed
- type inference
- parametric polymorphism
- refinement types / liquid types
- effects system
- first-class types
- value semantics
- hybrid nominal-structural type system
- first-class functions
- function overloading
- array programming / broadcasting
- units of measure
- (mostly) automatic memory management, no GC
- ergonomic strings (extended grapheme clusters, interpolation, multilin, flexible delimiters)
- compiletime evaluation for metaprogramming
- juxtaposition (type-directed call, multiply, index)
The language website, learning guide, reference, examples, and µDewy playground are built from site/ and published at https://dewy-lang.org/.
