Getting started
Install eTamil
Build the compiler from source on Linux, macOS or Windows, put it on your PATH, and run your first Tamil program.
Prerequisites
Rust 1.85+ (edition 2024) and a C toolchain — the bundled SQLite and the crypto crates compile C.
- Windows — Visual Studio Build Tools with the Desktop development with C++
workload. The MSVC linker is not optional: without it even
cargo checkfails, because proc-macro crates link as DLLs. - Linux / macOS — a working
cc(build-essential, or the Xcode command line tools).
Build from source
git clone https://github.com/Maruff/etamil_compiler.git
cd etamil_compiler/etamil_compiler
cargo build --release
The binary is target/release/etamil (etamil.exe on Windows). Put it on your
PATH:
Linux / macOS
sudo cp target/release/etamil /usr/local/bin/etamil
Windows (PowerShell)
Copy-Item "target\release\etamil.exe" "$env:USERPROFILE\bin\etamil.exe"
Verify:
etamil --version
Your first program
echo 'அச்சு "வணக்கம் உலகம்!";' > hello.etamil
etamil --vm hello.etamil
On Windows, write the file as UTF-8:
'அச்சு "வணக்கம் உலகம்!";' | Out-File hello.etamil -Encoding UTF8
etamil --vm hello.etamil
Then something that earns its keep — an income tax calculator that reads from stdin:
echo "950000" | etamil --vm examples/basic_samples/example.qmz
Optional features
SQLite is built in. The rest are behind Cargo features, so a default build does not carry their dependencies.
cargo build --release --features postgres,mysql
The LLVM backend is only needed for --llvm, and only available on Linux and macOS:
cargo build --release --features llvm
The LLVM backend compiles far less than the VM — no functions, iteration,
collections or modules. It refuses what it cannot build rather than emitting IR
that computes something else. Use --vm for real work.
Running the tests
cd etamil_compiler
cargo test # 176 language tests + 51 unit tests
tests/language_tests.rs covers the front end end-to-end by asserting on
program results, not exit codes — every bug those cover exited 0 while
producing the wrong answer. CI runs the build and full suite on Linux and Windows
for every push and pull request.
Every example also runs with its expected outcome checked, including the ones that are supposed to fail:
./scripts/run_examples.sh
python3 scripts/transliterate.py --check # romanization audit
Editor support
A VS Code extension with syntax highlighting, snippets and language configuration
lives in eTamil_Code/ in the compiler repository.
Where next
-
Language tour
Syntax, three spellings, exact decimals, functions, collections and modules.
-
Finance & accounting
GST, double entry and the three statements.
-
Backend
HTTP routes, SQL drivers, JSON and auth.
-
Status
What works today, what is partial, and what is not built.