GNU APL
GNU APL
Rho, rho, rho of X
Always equals 1
Rho is dimension, rho rho rank.
APL is fun!
Richard M. Stallman
, 1969
GNU APL
is a free interpreter for the programming language APL.
The APL interpreter is an (almost) complete implementation of
ISO standard 13751
aka.
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
GNU APL home page was produced by a CGI script written in APL (see
APL demo
).
GNU APL was written and is being maintained by Jürgen Sauermann.
Downloading and Installing GNU APL
GNU APL should be available on every
GNU mirror
(in directory
apl
) and at
ftp://ftp.gnu.org
Simple Installation of GNU APL
The
simplest
(though not the best) way to install GNU APL is this:
Visit one of the
GNU mirrors
and download the tar file
apl-2.0.tar.gz
in directory
apl
Unpack the tar file:
tar xzf apl-2.0.tar.gz
Change to the newly created directory:
cd apl-2.0
Read (and follow) the instructions in files
INSTALL
and
README-*
Caveat:
GNU APL used to create full releases every 1-2 years, but only up to release 1.9. From release 1.9 on, GNU APL changed from releasing tar files to only releasing bug fixes for the 1.9 release via the
GNU Savannah
project. This new way of distributing GNU APL made it easier for both the GNU APL developers and the GNU APL users to keep their GNU APL up-to-date. See topic
Subversion (SVN) and Git repositories for GNU APL
below for details.
Platforms
GNU APL compiles under all major platforms (GNU/Linux, BSD, MacOS, Windows).
On decent platforms like GNU/Linux does GNU APL runs almost out-of-the-box.
This is because the fonts needed to display APL characters and the keyboard
mappings needed to generate APL characters are well supported by the platform.
On obsolete platforms like Windows, the user usually needs to install
additional software in order to compile and use GNU APL. For example, in
Windows 11 the user needs:
Either
CYGWIN
or Microsoft's
WSL
(aka. Windows
Subsystem for Linux) for compiling GNU APL.
A suitable APL font to display the APL characters. Even though
Windows 11 supports Unicode as a concept, only a subset of Unicode
characters (excluding the standard APL characters) is properly
displayed without installing additional fonts.
A suitable keyboard layout (a mapping from keyboard keys to APL
characters). GNU APL is a terminal application that runs in a Windows
Command Prompt (aka.
cmd.exe
) window. Unfortunately the
cmd.exe
window ignores the keyboard mappings installed with
other Microsoft Windows tools like the
Keyboard Manager
of
the
Microsoft PowerTools
or Microsoft's
IME
(Input
Method Editor).
On platforms that are lacking even minimal support for APL characters
it is the responsibility of the user (i.e. the one who decided to use
that platform) to install the missing pieces for running GNU APL.
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
checkout is:
git clone https://git.savannah.gnu.org/git/apl.git
and here is
more information
about using Git with GNU APL.
Debian packages for GNU APL
For Debian based GNU/Linux distributions we have created source and binary
packages for Debian. Look for files
apl-2.0-1_amd64.deb
(binary Debian
package) or
apl-2.0-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.
Try GNU APL
Last, but not least, there is an online version of GNU APL, kindly provided
and maintained by
Roy Tobin
, that you can use to try out GNU APL
without installing it on your machine:
Reporting Bugs
GNU APL is made up of more than 140,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
bug-apl@gnu.org
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
list at
or subscribe to it at
Documentation
GNU APL comes with two documents:
A Quick Tour of GNU APL
which was primarily written for newcomers to APL in general or to GNU APL in
particular. It contains a brief introduction by examples into the APL
language, followed by s short description of almost all GNU APL features.
And, for those already familiar with APL, there is a slightly more detailed
info manual
for GNU APL whose
focus is more on the non-standard GNU APL features than on the APL
language itself.
Finally, all GNU APL source code files are Doxygen documented.
You can locally generate this documentation by running
make DOXY
in
the top level directory of the GNU APL package. Or browse a (not entirely
up-to-date)
online version
of the Doxygen documentation.
GNU APL Community
There is a growing group of people that are using GNU APL and that would like
to share their APL code with other APL programmers.
We have created a
GNU APL Community Web page
that aims at collecting and preserving
links
to the code provided
by GNU APL users as to avoid that it gets lost.
In addition, we maintain a
Bits-and-Pieces
directory
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
gnu@gnu.org
There are also
other ways to contact
the FSF.
Please send comments on these web pages to
bug-apl@gnu.org
send other questions to
gnu@gnu.org
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.
US