# Install gnu-apl with Homebrew, apk, MacPorts, Nix

GNU implementation of the programming language APL. Version 1.9 via Homebrew; verified 2026-06-13.

## Install

```sh
sudo av install brew:gnu-apl
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install gnu-apl
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install gnu-apl
```

  Evidence: MacPorts ports tree: lang/gnu-apl/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add gnu-apl
```

  Evidence: Alpine Linux edge package indexes: gnu-apl from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz

- Nix (92%):

```sh
nix profile install nixpkgs#gtk-server
```

  Evidence: nixpkgs package indexes: pkgs/by-name/gt/gtk-server/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:gnu-apl
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/gnu-apl>
- **Version:** 1.9
- **Source summary:** GNU implementation of the programming language APL
- **Homepage:** <https://www.gnu.org/software/apl/>
- **Repository:** <https://git.savannah.gnu.org/git/apl.git>
- **Upstream docs:** <https://www.gnu.org/software/apl>
- **License:** GPL-3.0-or-later
- **Source archive:** <https://ftpmirror.gnu.org/gnu/apl/apl-1.9.tar.gz>
- **Last updated:** 2026-06-13T23:34:56+02:00
- **Generated:** 2026-07-09T07:20:21+00:00

## Executables

- AP100 (cli)
- AP210 (cli)
- APserver (cli)
- Gtk_server (cli)
- apl (cli)
- AP100 (alias)
- AP210 (alias)
- APserver (alias)
- Gtk_server (alias)
- apl (alias)

## Dependencies

- at-spi2-core
- cairo
- gdk-pixbuf
- gettext
- glib
- gtk+3
- harfbuzz
- libpng
- libx11
- libxcb
- pango
- pcre2
- readline
- sqlite

## Build dependencies

- pkgconf

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, monterey, sonoma, ventura, x86_64_linux

## Freshness

- Page generated: 2026-07-09
- Package-manager version: 1.9
- Package-manager updated: 2026-06-13
- Local data: ok
- Upstream repository: https://www.gnu.org/software/apl/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

GNU APL is the GNU Project's free interpreter for APL, aimed at ISO/IEC 13751 Extended APL compatibility while adding practical Unix-style features such as scripting, shared variables, file I/O, SQL access, plotting, JSON handling, and GTK integration.

### Project history

Juergen Sauermann announced GNU APL 1.0 on the GNU info list in September 2013 after several years of development, describing it as a GNU implementation of the ISO 13751 APL standard with nested arrays, complex numbers, and shared variables. The project kept its source on GNU Savannah and later shifted from occasional tarball releases to repository-based bug-fix distribution after the 1.9 release line.

The interpreter evolved as a large C++ codebase rather than a minimal language experiment. Its manual frames GNU APL as an APL interpreter plus GNU-specific extensions, and the home page points users to a quick tour, a reference manual, Doxygen-generated source documentation, and Savannah repositories for routine development use.

### Adoption history

GNU APL serves the small but persistent APL community that wants a free software implementation available through GNU mirrors, source repositories, Debian packages, and ports for GNU/Linux, BSD, macOS, and Windows environments. The project also hosts a community page that collects contributed workspaces, libraries, editor modes, bindings, SQL interfaces, plotting tools, and ports.

Its ecosystem significance comes less from mass adoption and more from preservation: it gives package managers and free software distributions a maintained, source-available APL implementation with Unicode support and documented extensions.

### How it is used

Practitioners use GNU APL interactively from a terminal, as a script interpreter, and as a host for APL workspaces. Typical uses include exploring array-oriented algorithms, running old or portable APL code, writing compact data-processing scripts, testing ISO APL behavior, and using GNU APL's non-standard system functions for files, databases, graphics, JSON, and native integrations.

### Why package nerds care

For package maintainers, GNU APL is notable because it packages a historically specialized language in the familiar GNU Autotools and Savannah ecosystem. It also carries practical platform concerns that package builders care about, including APL glyph fonts, keyboard mappings, terminal behavior, and optional integrations.

### Timeline

- 2013: GNU APL 1.0 announced on the GNU info list.
- 2014: GNU APL community page documented contributed libraries, ports, and workspaces.
- After 1.9: GNU APL release practice moved toward repository-delivered bug fixes.

### Related projects

- APL2 and ISO/IEC 13751 define the language family and standard GNU APL targets.
- GNU Savannah hosts the project's official source repositories.
- Community projects include GNU APL editor integrations, APL package/library collections, SQL bindings, plotting tools, Android porting work, and keyboard helpers.

### Sources

- <https://lists.gnu.org/archive/html/info-gnu/2013-09/msg00014.html>
- <https://www.gnu.org/software/apl/>
- <https://www.gnu.org/software/apl/Community.html>
- <https://www.gnu.org/software/apl/apl.html>


## Security Notes

broad file, network, media, or database tool signal. generalized runtime or code generation signal.

- **Geiger risk:** yellow / medium
- broad file, network, media, or database tool signal
- generalized runtime or code generation signal

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** gnu-apl
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- apk - gnu-apl - 1.9-r0: normalized package name match | Alpine Linux edge package indexes: gnu-apl from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | GNU interpreter for the programming language APL | https://www.gnu.org/software/apl/
- apk - gnu-apl-dev - 1.9-r0: normalized package name match | Alpine Linux edge package indexes: gnu-apl-dev from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | GNU interpreter for the programming language APL (development files) | https://www.gnu.org/software/apl/
- apk - gnu-apl-doc - 1.9-r0: normalized package name match | Alpine Linux edge package indexes: gnu-apl-doc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | GNU interpreter for the programming language APL (documentation) | https://www.gnu.org/software/apl/
- MacPorts - gnu-apl: normalized package name match | MacPorts ports tree: lang/gnu-apl/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Nix - gtk-server: installed executable or alias match | nixpkgs package indexes: pkgs/by-name/gt/gtk-server/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - gtk-server - 2.4.6-r2: installed executable or alias match | Alpine Linux edge package indexes: gtk-server from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Interpreted GUI Programming for GTK | https://www.gtk-server.org/
- apk - gtk-server-doc - 2.4.6-r2: installed executable or alias match | Alpine Linux edge package indexes: gtk-server-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Interpreted GUI Programming for GTK (documentation) | https://www.gtk-server.org/


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [cairo](https://www.automicvault.com/pkg/brew/cairo/) - Runtime dependency declared by Homebrew.
- [gdk-pixbuf](https://www.automicvault.com/pkg/brew/gdk-pixbuf/) - Runtime dependency declared by Homebrew.
- [gettext](https://www.automicvault.com/pkg/brew/gettext/) - Runtime dependency declared by Homebrew.
- [glib](https://www.automicvault.com/pkg/brew/glib/) - Runtime dependency declared by Homebrew.
- [gtk+3](https://www.automicvault.com/pkg/brew/gtk-3/) - Runtime dependency declared by Homebrew.
- [harfbuzz](https://www.automicvault.com/pkg/brew/harfbuzz/) - Runtime dependency declared by Homebrew.
- [libpng](https://www.automicvault.com/pkg/brew/libpng/) - Runtime dependency declared by Homebrew.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [lua](https://www.automicvault.com/pkg/brew/lua/) - Shares av.db curated category or tags: cli, interpreter, language-runtime, programming-language, scripting.
- [picat](https://www.automicvault.com/pkg/brew/picat/) - Shares av.db curated category or tags: cli, interpreter, language-runtime, programming-language, scripting.
- [ruby](https://www.automicvault.com/pkg/brew/ruby/) - Shares av.db curated category or tags: cli, interpreter, language-runtime, programming-language, scripting.
- [algol68g](https://www.automicvault.com/pkg/brew/algol68g/) - Shares av.db curated category or tags: cli, interpreter, language-runtime, programming-language.
- [gosu](https://www.automicvault.com/pkg/brew/gosu/) - Shares av.db curated category or tags: cli, language-runtime, programming-language, scripting.
- [gravity](https://www.automicvault.com/pkg/brew/gravity/) - Shares av.db curated category or tags: cli, interpreter, language-runtime, programming-language.
- [groovy](https://www.automicvault.com/pkg/brew/groovy/) - Shares av.db curated category or tags: cli, language-runtime, programming-language, scripting.
- [io](https://www.automicvault.com/pkg/brew/io/) - Shares av.db curated category or tags: cli, language-runtime, programming-language, scripting.
- [gnu-smalltalk](https://www.automicvault.com/pkg/brew/gnu-smalltalk/) - Package names and metadata indicate a similar tool family. Shared terms: cli, gnu, implementation, interpreter, language.
- [mdk](https://www.automicvault.com/pkg/brew/mdk/) - Local package facts share a topical domain. Shared terms: at-spi2-core, cairo, core, gdk, gdk-pixbuf.
- [xboard](https://www.automicvault.com/pkg/brew/xboard/) - Local package facts share a topical domain. Shared terms: at-spi2-core, cairo, cli, core, gdk.

## Combined YAML source

View the package source record on GitHub. [combined/gnu-apl.yml](https://github.com/automic-vault/db/blob/main/combined/gnu-apl.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
