|| Rho, rho, rho of X|
Always equals 1
Rho is dimension, rho rho rank.
APL is fun!
Richard M. Stallman, 1969
is a free interpreter for the programming language APL.
The APL interpreter is an (almost) complete implementation of
ISO standard 13751
Programming Language APL, Extended.
The APL interpreter has implemented:
- nested arrays and related functions
- complex numbers, and
- a shared variable interface
In addition, GNU APL
can be scripted. For example,
this HTML page
is the output of a CGI script written in APL.
GNU APL was written and is being maintained by Jürgen Sauermann.
Downloading and Installing GNU APL
GNU APL should be available on every
(in directory apl
) and at
Simple Installation of GNU APL
(though not necessarily best) way to install GNU APL is this:
- Visit one of the GNU mirrors and download the tar file apl-1.8.tar.gz in directory apl.
- Unpack the tar file: tar xzf apl-1.8.tar.gz
- Change to the newly created directory: cd apl-1.8
- Read (and follow) the instructions in files INSTALL and README-*
- Caveat: GNU APL creates full releases only every 1-2 years. Therefore an interpreter downloaded from a GNU mirror is inevitably outdated and likely contains errors that were fixed already. Consider using git or SVN (see below) instead.
GNU APL for WINDOWs
GNU APL compiles under CYGWIN, (see
provided that the necessary libraries are installed. A 32-bit apl.exe
that should run under CYGWIN lives in the download area. Use at your own risk
and see README-5-WINDOWS
for further information. Building GNU APL under
cygwin is the method of choice if you need some of the special purpose system
functions (⎕FFT, ⎕PLOT, ⎕RE, etc) that depend on non-default libraries.
A compiled 64-bit version of GNU APL (briefly tested under Windows 10)
which was built under cygwin, but runs without cygwin being installed,
is contained in file apl-1.8-windows.zip
. This zip file also contains
an installer for an APL keyboard layout.
Subversion (SVN) and Git repositories for GNU APL
The best supported way of installing GNU APL is to check out its latest version from either its Subversion (preferred)
or Git repository on Savannah. The subversion command to do that is:
svn checkout http://svn.savannah.gnu.org/svn/apl/trunk
Here is more information
about using Subversion with GNU APL. Likewise, the command for a Git
git clone https://git.savannah.gnu.org/git/apl.git
and here is more information
about using Git with GNU APL.
RPMs for GNU APL
For RPM based GNU/Linux distributions we have created source and binary RPMs.
Look for files apl-1.8-0.i386.rpm
(binary RPM for i386) or
(source RPM). If you encounter a problem with these
RPMs, then please report it, but with a solution, since the maintainer of
GNU APL may use a GNU/Linux distribution with a different package manager.
Debian packages for GNU APL
For Debian based GNU/Linux distributions we have created source and binary
packages for Debian. Look for files apl-1.8-1_i386.deb
package for i386) or apl-1.8-1.debian.tar.gz
(Debian source package).
If you encounter a problem with these packages, then please report it,
but with a solution, since the maintainer of GNU APL may use a GNU/Linux
distribution with a different package manager.
GNU APL Binary
If you just want to quickly give GNU APL a try, and if you are very lucky,
then you may be able to start the compiled
GNU APL binary apl
in the directory apl
installing the entire packet . The binary MAY run on a 32-bit i686 Ubuntu.
Chances are, however, that it does NOT work, Please DO NOT report any
problems if the binary does not run on your machine. Instead please use a better
supported installation method above.
The programs APxxx
(support programs for
shared APL variables) are not provided in binary form. Therefore you should
start the apl
binary with command line option --noSV
. Note as
well that the binary apl
will not be updated with every GNU APL release.
Therefore it will contain errors that have been corrected already.
GNU APL Online
As of recently, there is an (experimental) online version of GNU APL. It is
intended to give you an idea of how GNU APL will look like if you install it
on your computer. See
GNU APL on Docker
For those who live in the cloud there is a small Docker container with Alpine
GNU/Linux, GNU APL, and the optional libraries (SQLite, Postgres, FFT). See
A larger container with GNU APL 1.8 is:
GNU APL is made up of more than 100,000 lines of C++ code. In a code of that
size, programming mistakes are inevitable. Even though mistakes are hardly
avoidable, they can be corrected
once they are found. In order to
improve the quality of GNU APL, we would like to encourage you to report
errors that you find in GNU APL to
The emails that we like the most are those that include a small example of
how to reproduce the fault. You can see all previous postings to this mailing
or subscribe to it at
We have an info manual
for GNU APL.
We are also looking for free
documentation on APL in general
(volunteers welcome) that can be published here. A "Quick start" document
for APL is planned but the work has not started yet.
The C++ source files for GNU APL are Doxygen documented. You can generate
this documentation by running make DOXY
in the top level directory
of the GNU APL package.
GNU APL Community
There is a growing group of people that are using GNU APL and that have made
their own developments related to APL available to the public.
We have created a
GNU APL Community Web page
that collects links
to those developments to avoid that they get lost.
In addition, we maintain a
where we collect files
that contain APL code sniplets, GNU APL
workspaces, and other files that were contributed by the GNU APL Community.
The Bits-and-Pieces directory is the right place for contributions for which
the creation of an own hosting account would be an overkill.
Return to GNU's home page
Please send FSF & GNU inquiries & questions to
There are also
other ways to contact
Please send comments on these web pages to
send other questions to
Copyright (C) 2014 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved.