[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Bug-apl] How to organize programs
From: |
David B. Lamkins |
Subject: |
Re: [Bug-apl] How to organize programs |
Date: |
Mon, 26 Dec 2016 10:39:31 -0800 |
User-agent: |
Mutt/1.7.1 (2016-10-04) |
There are a couple of existing guidelines. If you poke around in wslib5, you'll
see examples of both.
http://www.gnu.org/software/apl/Library-Guidelines.html
This is intended for modern APLs (i.e. those which are able to load APL
programs as Unicode) in general; this document links to another which admits
GNU APL extensions.
Hallmarks of this approach include separating libraries into different
workspaces according to functionality and generality, and the inclusion of
metadata within the APL file.
Another approach is taken by my package manager.
https://github.com/TieDyedDevil/apl-pkg/blob/master/doc/TUTORIAL.md
https://github.com/TieDyedDevil/apl-pkg/blob/master/doc/API.md
This is a more heavyweight approach, depending as it does on the mechanisms of
the package manager.
At the moment, the package manager runs only on GNU APL. The architecture and
design, however, will eventually accomodate any modern APL (again, defined by
the ability to load Unicode files). In the long run, the package manager will
be aware of versioned packages (and constraints on loading those packages) and
will be able to pull packages across the `net.
On Mon, Dec 26, 2016 at 05:53:22PM +0100, Alexey Veretennikov wrote:
> Hi,
>
> The question is rather silly but raised since earlier in discussion
> Jurgen mentioned what the workspaces is the outdate way to work with
> APL.
>
> So what is the current (modern) ways supported by GNU APL would be?
> I could imagine the organization of the program the following:
> 1) set of UTF-8 text files containing functions (possibly 1 function per file)
> 2) one main script file loading these functions, setting the data
> variables and performing the execution.
>
> In the old ways it could be the main workspace which copies necessary
> functions from other workspaces as a part of commands from ⎕LX variable
> and performing the execution.
>
> In addition Dyalog APL provides something called SALT - Simple APL
> Library Toolkit - a way to organize APL objects as a separate files and
> manipulate them. From the documentation: "One of SALT's function, Snap ,
> also enables the construction of a directory structure corresponding to
> the namespace structure of a workspace, where each file in the structure
> contains the script of an APL object in the workspace."
>
>
> --
> Br,
> /Alexey
>
>