uiua 0.18.1

A stack-based array programming language
Documentation

<img src="site/assets/uiua-logo.png" width="140"/> 

# Uiua

Uiua (pronounced *"wee-wuh"*) is a stack-based array programming language.

Documentation, examples, and an online interpreter can be found at [uiua.org](https://uiua.org).

You can also check out the [Discord server](https://discord.gg/3r9nrfYhCc).

You can support Uiua's development via [GitHub Sponsors](https://github.com/sponsors/uiua-lang).

## Installation

You can try the language without installing anything on [the website](https://uiua.org).

If you want to install the interpreter locally, there are 2 options:
- If your OS is supported, you can simply download the [latest release]https://github.com/uiua-lang/uiua/releases.
- If not, you will need to install via Cargo.
This requires [Rust]https://www.rust-lang.org/tools/install (>=1.88) to be installed.

  You can install with one of the following commands:
  ```
  cargo install uiua -F full # Installs all features
  cargo install uiua         # No audio, webcam, or window features
  ```
  On Linux, you may need to install some dependencies first:
  ```
  apt install libx11-dev libffi-dev
  ```

  The following optional features are available but not enabled by default (enabled by passing `--features <feature>`):
  - `full`: Enables all optional features below
  - `audio`: Enables audio system functions (may require `libasound2-dev libudev-dev pkg-config` on Linux)
  - `webcam`: Enables webcam system functions (may require `libjpeg-dev` on Linux)
  - `window`: Enables output in a window

- If you want the most recent development version of Uiua, you can install from the git repository.
  ```
  cargo install --git https://github.com/uiua-lang/uiua uiua -F full
  cargo install --git https://github.com/uiua-lang/uiua uiua
  ```
- If you use Nix or NixOS, you can clone this repo and do the following:
  ```
  nix develop    # to drop into a shell prompt with all the dependencies
  cargo check    # to make sure you can compile/build latest version
  cargo build    # to build latest debug version of uiua
  cargo run repl # to get uiua repl
  ```

  *Note:* If you encounter errors such as `rustc` or any other package
  version mismatch, it is most likely that `flake.lock` file needs to be
  updated to pull in updated dependencies for nix shell.

## Language and Font Support

The Uiua native interpreter has a built-in language server that can be used by editor extensions.

You can find a list of editor extensions [here](https://uiua.org/docs/install#editor-support).

You can find a list of fonts that support Uiua's characters [here](https://uiua.org/docs/install#fonts).