Install
Install
Thagore ships two installation paths:
- prebuilt release archives installed with
thagup.shorthagup.ps1 - source builds from this repository with Cargo
What you will install
The toolchain currently provides these command-line tools:
| Tool | Role | Source |
|---|---|---|
thagc | Compiler driver | tools/thagore-cli |
thagore | Alias of thagc | tools/thagore-cli |
thagore-fmt | Official formatter | tools/thagore-fmt |
thagore-lsp | Language Server Protocol server | tools/thagore-lsp |
drago | Package manager, version-checked against thagc | separate repo |
Prebuilt installers
Release installers live in this repository:
| Script | Platform |
|---|---|
tooling/release/thagup.sh | Linux, macOS, BSD, other POSIX shells |
tooling/release/thagup.ps1 | Windows PowerShell |
The installer resolves the correct archive from the release manifest, verifies SHA256, then installs:
- binaries into
PREFIX/bin - the standard library into
PREFIX/share/thagore/stdlib
Install the current in-develop toolchain
curl -fsSL https://github.com/thagore-foundation/thagore/releases/latest/download/thagup.sh | shInstall to a custom prefix
curl -fsSL https://github.com/thagore-foundation/thagore/releases/latest/download/thagup.sh | sh -s -- --prefix "$HOME/.local/share/thagore"Install a specific target or channel
curl -fsSL https://github.com/thagore-foundation/thagore/releases/latest/download/thagup.sh | sh -s -- \ --channel extended \ --target x86_64-unknown-linux-muslWindows PowerShell
irm https://github.com/thagore-foundation/thagore/releases/latest/download/thagup.ps1 | iexRelease channels
| Channel | Meaning |
|---|---|
indev | Current public in-develop toolchain builds |
extended | Additional semver release artifacts when a builder is available |
nightly | Preview prerelease artifacts |
The canonical target matrix is exposed by:
thagc --print-target-listCurrent in-develop targets:
x86_64-unknown-linux-gnuaarch64-unknown-linux-gnux86_64-unknown-linux-muslaarch64-unknown-linux-muslx86_64-apple-darwinaarch64-apple-darwinx86_64-pc-windows-msvcaarch64-pc-windows-msvc
Prerequisites
You need:
| Requirement | Notes |
|---|---|
| Current Rust toolchain | Build system for thagc, thagore-fmt, and thagore-lsp |
| Cargo | Comes with Rust |
| C toolchain | Required for runtime compilation and final linking |
| LLVM 14 development files | The current backend builds against inkwell with LLVM 14 |
cc linker | Used by the codegen output path |
python3 | Useful for local docs and static site tooling |
On Debian or Ubuntu, a working baseline is:
sudo apt updatesudo apt install -y build-essential clang llvm-14 llvm-14-dev llvm-14-tools lld pkg-config python3 curl gitcurl https://sh.rustup.rs -sSf | shIf your LLVM 14 binaries are installed under a non-default prefix, export LLVM_SYS_140_PREFIX before building:
export LLVM_SYS_140_PREFIX=/usr/lib/llvm-14Build from source
Clone the compiler repository and build the active tools:
git clone https://github.com/thagore-foundation/thagore.gitcd thagorecargo build -p thagore-cli -p thagore-fmt -p thagore-lspThis produces:
| Binary | Path |
|---|---|
thagc | target/debug/thagc |
thagore | target/debug/thagore |
thagore-fmt | target/debug/thagore-fmt |
thagore-lsp | target/debug/thagore-lsp |
Verify the compiler
Check the compiler version:
./target/debug/thagc versionAt the time of writing, the repository reports:
thagc 0.9.6llvm: 14.0.0host: x86_64-linux-gnuCreate a minimal program:
func main(): println("Hello, Thagore!")Save it as hello.tg, then compile and run it:
./target/debug/thagc build hello.tg -o hello./helloYou can also typecheck without code generation:
./target/debug/thagc check hello.tgVerify the formatter
The formatter is a separate binary:
./target/debug/thagore-fmt --helpFormat a file in place:
./target/debug/thagore-fmt hello.tgCheck formatting without rewriting:
./target/debug/thagore-fmt --check hello.tgVerify the language server
Build output already includes the LSP server:
./target/debug/thagore-lsp --helpEditor integrations should launch thagore-lsp over stdio. The repository also contains a VS Code extension scaffold under editors/vscode/.
Optional: install source-built binaries into your PATH
If you want the tools available globally from your shell:
mkdir -p "$HOME/.local/bin"cp target/debug/thagc "$HOME/.local/bin/"cp target/debug/thagore "$HOME/.local/bin/"cp target/debug/thagore-fmt "$HOME/.local/bin/"cp target/debug/thagore-lsp "$HOME/.local/bin/"export PATH="$HOME/.local/bin:$PATH"Add the PATH export to your shell profile if you want it to persist.
Build drago from source
drago lives in a separate repository and is compiled by thagc.
Clone drago next to thagore or anywhere you prefer:
git clone https://github.com/thagore-foundation/drago.gitcd dragoPoint drago at the compiler you just built:
THAGC=/absolute/path/to/thagore/target/debug/thagc$THAGC build src/main.tg -o drago.bin./drago.bin versionThe current drago codebase expects thagc >= 0.9.6.
Common build issues
LLVM not found
If Cargo fails while compiling the backend or llvm-sys, your LLVM 14 development files are missing or not discoverable. Install LLVM 14 and set LLVM_SYS_140_PREFIX to the correct directory.
Linker errors
thagc uses a C runtime object during final linking. Make sure a working C toolchain is installed and that cc is available in PATH.
Installer cannot find the requested target
Pass --target <triple> explicitly. The installer defaults to the host target, and only installs artifacts present in the release manifest.
drago cannot find thagc
drago resolves the compiler from:
THAGC- common local build paths
PATH
If in doubt, set THAGC explicitly to the thagc binary you want it to use.
Next steps
- Read Language Overview for the core language model.
- Read Imports before building multi-file projects.
- Read Drago if you want package management and project workflows.