-
Notifications
You must be signed in to change notification settings - Fork 0
Installation
This guide covers installing ARO on macOS, Linux, and Windows, including the requirements for native compilation.
brew tap arolang/aro
brew install arocurl -L https://github.com/arolang/aro/releases/latest/download/aro-linux-amd64.tar.gz | tar xz
sudo mv aro /usr/local/bin/
sudo mv libARORuntime.a /usr/local/lib/Download the latest release from GitHub Releases:
- Extract
aro-windows-amd64.zip - Add the extracted directory to your PATH
Each ARO release includes:
-
aro(oraro.exeon Windows) - The ARO CLI -
libARORuntime.a- Static runtime library (required for native compilation)
ARO has two execution modes with different requirements:
| Mode | Command | Requirements |
|---|---|---|
| Interpreter | aro run ./MyApp |
Just the aro binary |
| Native Compilation | aro build ./MyApp |
Additional toolchain (see below) |
The interpreter mode requires only the aro binary. It executes ARO programs directly without compilation.
No additional dependencies. The aro binary is self-contained.
No additional dependencies. The aro binary is self-contained.
Requires Swift runtime DLLs in PATH. These are installed automatically with Swift for Windows.
If you see DLL errors, install Swift for Windows to get the runtime DLLs.
Native compilation produces standalone executables that don't require ARO or Swift to be installed on the target system. This requires additional toolchain components.
-
LLVM (provides
llcfor LLVM IR to object file compilation) - Xcode Command Line Tools (provides the system linker)
# Install LLVM via Homebrew
brew install llvm
# Verify installation
/opt/homebrew/opt/llvm/bin/llc --versionThe ARO linker automatically finds LLVM in standard Homebrew locations.
# Test native compilation
mkdir -p HelloWorld
echo '(Application-Start: Hello) {
<Log> the <message> for the <console> with "Hello from native binary!".
<Return> an <OK: status> for the <startup>.
}' > HelloWorld/main.aro
aro build ./HelloWorld
./HelloWorld/HelloWorld-
LLVM 14 (provides
llcfor LLVM IR compilation) - Clang 14 (used as the linker)
- Swift runtime libraries (linked into the binary)
# Install LLVM and Clang
sudo apt-get update
sudo apt-get install -y llvm-14 clang-14
# Install Swift (if not already installed)
# Download from https://swift.org/download/
# Or use swiftly: https://github.com/swift-server/swiftly
# Verify installation
llc-14 --version
clang-14 --versionsudo dnf install llvm clangThe Swift runtime libraries must be available for linking. If you installed Swift from swift.org, they're typically at:
/usr/lib/swift/linux//usr/share/swift/usr/lib/swift/linux/
# Test native compilation
aro build ./HelloWorld
./HelloWorld/HelloWorld-
LLVM (provides
clang.exefor LLVM IR compilation) - Visual Studio or Build Tools for Visual Studio (provides MSVC linker)
- Windows SDK (provides UCRT and Windows API libraries)
- Swift for Windows (provides Swift runtime DLLs)
-
Install Visual Studio Build Tools
Download from Visual Studio Downloads and select:
- "Desktop development with C++" workload
- Windows SDK (usually selected by default)
Or install via winget:
winget install Microsoft.VisualStudio.2022.BuildTools --override "--add Microsoft.VisualStudio.Workload.VCTools --includeRecommended"
-
Install LLVM
Download from LLVM Releases or:
winget install LLVM.LLVM
Ensure
C:\Program Files\LLVM\binis in your PATH. -
Install Swift for Windows
Download from Swift.org Downloads.
The installer adds Swift to PATH and sets up environment variables.
-
Verify Installation
# Check LLVM clang --version # Check Swift swift --version # Check Visual Studio (from Developer Command Prompt) cl
The following environment variables are used by ARO's linker (usually set automatically by installers):
| Variable | Purpose | Example |
|---|---|---|
SDKROOT |
Swift SDK location | C:\Users\...\Swift\Platforms\...\Windows.sdk\ |
PATH |
Must include Swift runtime DLLs | ...\Swift\Runtimes\...\usr\bin |
# Test native compilation
aro build .\HelloWorld
.\HelloWorld\HelloWorld.exe- Swift 6.2 or later
- Git
# Xcode 16.3+ includes Swift 6.2
xcode-select --install
git clone https://github.com/arolang/aro.git
cd aro
swift build -c release
# Binary at .build/release/aro
# Runtime library at .build/release/libARORuntime.a# Install Swift from https://swift.org/download/
# Or use swiftly: curl -L https://swift-server.github.io/swiftly/swiftly-install.sh | bash
git clone https://github.com/arolang/aro.git
cd aro
swift build -c release
# Binary at .build/release/aro
# Runtime library at .build/release/libARORuntime.a# Install Swift from https://swift.org/download/
git clone https://github.com/arolang/aro.git
cd aro
swift build -c release
# Binary at .build\release\aro.exe
# Runtime library at .build\release\libARORuntime.aInstall LLVM:
brew install llvmIf ARO still can't find it, the binary is at /opt/homebrew/opt/llvm/bin/llc.
Official releases are code-signed and notarized. If building from source:
xattr -d com.apple.quarantine /usr/local/bin/aroEnsure Swift is properly installed and the runtime libraries are at /usr/lib/swift/linux/ or /usr/share/swift/usr/lib/swift/linux/.
This can happen with older versions of swiftc. ARO uses clang as the linker on Linux to avoid this issue. Ensure clang-14 is installed.
This usually means Swift runtime DLLs aren't in PATH. Ensure Swift for Windows is installed and the runtime bin directory is in PATH:
C:\Users\<user>\AppData\Local\Programs\Swift\Runtimes\<version>\usr\bin
Install Windows SDK via Visual Studio Installer:
- Open Visual Studio Installer
- Modify your installation
- Ensure "Windows SDK" is selected under Individual Components
Ensure Visual Studio Build Tools are installed with the C++ workload. The MSVC libraries (vcruntime, msvcrt) are required for linking.
For the best development experience, install the ARO language extensions:
- Visual Studio Code: Search for "ARO Language" in Extensions
- IntelliJ/WebStorm: Search for "ARO Language" in Plugins
See IDE Integration for more details.
- Getting Started - Write your first ARO program
- Language Guide - Complete language reference
- Examples - Working example applications
Fundamentals
- The Basics
- Feature Sets
- Actions
- Variables
- Type System
- Control Flow
- Error Handling
- Computations
- Dates
- Concurrency
Runtime & Events
I/O & Communication
Advanced