Skip to main content

Installation

A White installation contains the compiler, standard library, and the native tools used by the compiler driver. Start with a binary release unless you are working on wlc itself; rebuilding the compiler requires an existing White toolchain.

Download a release

The download page lists the packages currently present on the public mirror. Choose the package matching the operating system and architecture on which wlc will run.

Windows releases use an installer. Linux and macOS releases are compressed archives. After installation or extraction, the toolchain root has this form:

WhiteLanguage/
├── bin/
│ ├── wlc
│ └── wlls
├── std/
└── tools/
└── llvm/

Executable names have an .exe suffix on Windows. The bundled LLVM directory contains the Clang toolchain used for native code generation and linking.

Configure the environment

WL_PATH must point at the WhiteLanguage directory shown above. It must not point at bin, std, or the compiler executable itself. Add WhiteLanguage/bin to PATH so that wlc can be run outside the installation directory.

For the current PowerShell session:

$env:WL_PATH = "C:\path\to\WhiteLanguage"
$env:Path = "$env:WL_PATH\bin;$env:Path"

For the current Bash, Zsh, or compatible shell session:

export WL_PATH="$HOME/path/to/WhiteLanguage"
export PATH="$WL_PATH/bin:$PATH"

Add the same assignments through the normal environment settings for your operating system or shell if they should survive a new terminal session. The Windows installer will automatically do this; open a new terminal before checking it.

Check the installation

Run:

wlc --help

The first line should contain the installed compiler version, followed by the driver options. To check the standard-library path as well, compile this file:

check.wl
import "sys"

func main() -> Int {
print("White is running on ", sys.OS);
return 0;
}
wlc check.wl

Run check.exe on Windows or ./check on Linux and macOS. A successful build confirms that wlc, the standard library, and the backend toolchain can all be found.

Common setup failures

Missing 'WL_PATH' variable. means that the variable was not visible to the terminal which started wlc. Set it in that session or restart the terminal after changing the system environment.

An error which names a missing standard-library module usually means that WL_PATH points one directory too high or too low. The directory stored in the variable should contain std directly.

If wlc cannot start Clang, first check for tools/llvm/bin/clang inside the installation. When the bundled toolchain is absent, the driver falls back to a system clang available through PATH.

On Linux and macOS, an archive may lose executable permissions depending on how it was unpacked. Restore them on the compiler and bundled Clang if the shell reports Permission denied:

chmod +x "$WL_PATH/bin/wlc" "$WL_PATH/tools/llvm/bin/clang"

Installations copied from another machine should keep bin, std, and tools/llvm together. Copying only wlc is not a complete toolchain.