bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-apl] [ANNOUNCE] APL Package Manager 0.1 (Netochka)


From: David B. Lamkins
Subject: [Bug-apl] [ANNOUNCE] APL Package Manager 0.1 (Netochka)
Date: Sat, 09 Aug 2014 18:25:00 -0700

The first release of the APL Package Manager is now available from:

  https://github.com/TieDyedDevil/apl-pkg/releases/tag/Netochka



Date:    2014-08-09
Contact: [David B. Lamkins](mailto:address@hidden)

Announcing the Release of APL Package Manager
=============================================

The **APL Package Manager** is a tool to manage the development and
deployment of APL software built from a collection of packages.

In its initial release, named *Netochka*, the **APL Package Manager**
supports GNU APL version 1.4 or later on GNU/Linux hosts.

> GNU APL is a modern implementation of APL, based upon ISO 13751
  "Programming Language APL, Extended" and IBM APL 2, with extensions
  to support access to the underlying platform for file and process
  I/O. The GNU APL ecosystem includes contributed software for access
  to databases (SQLite and PostgreSQL) as well as two ISO 13751
  compliant component file implementations. APL processes on the same
  host may share variables using the standard APL ⎕SVx functions. GNU
  APL includes APs 100 (shared variables) and 210 (file system
  access). Programmers may extend GNU APL by compiling C++ native
  functions as shared libraries. Experimental support for multicore
  CPUs may be enabled when compiling GNU APL from source. Developers
  and users may run GNU APL using either a full-featured IDE in GNU
  Emacs or a more traditional APL session in a terminal window.

Although APL is very good for interactive programming based upon
structured datasets, the ISO/IBM version of the language lacks modern
facilities for programming-in-the-large. This historical limitation
fosters a culture of reinvention rather than reuse. Large software
systems were built using APL in the days of top-down software
management. Those days are gone.

The **APL Package Manager** defines and checks a set of conventions to
support reuse of code among far-flung and self-managed APLers.

The central shared artifact of the **APL Package Manager** is a
package. A package collects one or more cohesive APL source code files
together with descriptive metadata, optional documentation and data
files, optional source code files in other langagues (e.g. for
building helper applications and interfaces), plus a control file to
load the package; these are all located within a single directory that
may be distributed as an archive file or a source code repository.

In this first release, the **APL Package Manager** locates all
packages within a local directory. Information collected from these
packages is queried for package descriptions and documentation.
Packages are loaded into the active APL workspace in much the same way
as APL's `)COPY ...` command, except that loading a single package
will automatically pull in all of its dependent packages.

The **APL Package Manager** provides tools to support programming. A
locator facility, for example, identifies the source file and line
number of a loaded function and optionally opens the function in a
viewer or editor; this works without the support of a separate IDE.

Another tool allows listing of names specific to a particular package;
this is very useful when many packages have been loaded into a
workspace.

Packages may be used alongside traditional APL workspace files or
source code files. APL source code files are easily packaged with help
from the **APL Package Manager**.

The **APL Package Manager** supports deployment of completed systems.

Future releases of the **APL Package Manager** will implement
additional tools and features, including program analysis, version
management, and remote repositories.

The **APL Package Manager** is designed to support additional APL
interpreters and host platforms.

The **APL Package Manager** is open source software distributed under
the MIT License.

References
----------

1. [APL Package Manager](https://github.com/TieDyedDevil/apl-pkg)
2. [GNU APL](http://www.gnu.org/software/apl/)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]