Installation

Download

Grab the latest release from the releases page. Tape ships as a single archive — compiler, standard library, runtime DLLs, and examples included.

PlatformFile
Windows x64tape-2.0.0-win64.zip
Linux x86_64tape-2.0.0-linux.tar.gz
macOS x86_64tape-2.0.0-macos.tar.gz
macOS ARM64 (Apple Silicon)tape-2.0.0-macos-arm64.tar.gz

Windows

bash
# Extract the archive
unzip tape-2.0.0-win64.zip
cd tape-2.0.0-win64

# Build and run the included demo
.\tape.exe build examples\widget_demo.tape -I "stdlib" -o widget_demo.exe
.\widget_demo.exe

# Build your own program
.\tape.exe build hello.tape -I "stdlib" -o hello.exe

Linux

bash
# Extract the archive
tar xzf tape-2.0.0-linux.tar.gz
cd tape-2.0.0-linux
chmod +x tape

# Add to PATH and library path
export PATH=$PATH:$(pwd)
export LD_LIBRARY_PATH=$(pwd):$LD_LIBRARY_PATH

# Build and run the included demo
./tape build examples/widget_demo.tape -I stdlib -o widget_demo
chmod +x widget_demo && ./widget_demo

# Build your own program
./tape build hello.tape -I stdlib -o hello
chmod +x hello && ./hello

macOS

bash
# Extract the archive
tar xzf tape-2.0.0-macos.tar.gz
cd tape-2.0.0-macos
chmod +x tape

# Add to PATH and library path
export PATH=$PATH:$(pwd)
export DYLD_LIBRARY_PATH=$(pwd):$DYLD_LIBRARY_PATH

# Build and run the included demo
./tape build examples/widget_demo.tape -I stdlib -o widget_demo
chmod +x widget_demo && ./widget_demo

# Build your own program
./tape build hello.tape -I stdlib -o hello
chmod +x hello && ./hello

What’s in the archive

FileDescription
tape / tape.exeCompiler and build tool
tapert100.dll / .so / .dylibRuntime library (memory, I/O, args)
gfx.dll / .so / .dylib2D graphics library
image.dll / .so / .dylibImage codec library (BMP, PNG, JPEG, HUVA)
uwm.dll / .so / .dylibWindow manager
stdlib/Standard library (io, str, mem, math, gfx, ui, widgets)
image/Image codec sources (PNG, BMP, JPEG, HUVA)
rt/Runtime source (platform bindings)
examples/Example programs (widget_demo, counter, canvas, etc.)

Verify

Create a file called hello.tape:

tape
@profile(t1);
import io from "io";

pub fn main() -> i32 {
    io.println("Hello, world!");
    return 0;
}

Build and run it:

bash
tape build hello.tape -I stdlib -o hello
./hello

You should see Hello, world! printed to the console.

Editor support

Tape has a VS Code extension that provides syntax highlighting. Search for “Tape Language” in the VS Code extension marketplace, or install the tape-language extension by Puida.

Last modified: