APLX to Dyalog Migration Tools
On July 11th 2016, MicroAPL announced the end of support for the APLX product. Since that date, Dyalog has been working with APLX users on developing tools to assist in the migration of existing applications from APLX to Dyalog APL. At this time, the tools are very much “work in progress” and will be updated frequently as we receive feedback.
Comments and contributions are very welcome. Since Dyalog Ltd still has relatively limited knowledge of active APLX applications, we need input from APLX users to help us prioritise our work! Write to us at aplx@dyalog.com, or participate in the forum section created for this purpose (note that membership is not required in order to read the contents of the Dyalog forums).
Important: All of the tools and documents and other information contained in this repository are provided free of charge and without warranty of any kind. Dyalog will endeavour to correct any defects that are reported, but this is a community effort and not a supported product from Dyalog Ltd.
Acknowledgements
Many thanks to Jay Whipple III for suffering through the first versions of the emulations - all APLX users who subsequently use these tools should be grateful for his pioneering spirit and prepare to buy him the drink of his choice at the next User Meeting!
Thanks to Dan Baronet for contributing the "xfrpc" tools which he has worked on for decades.
NB: The tools remain in a state of rapid flux. Feedback and contributions are very welcome! Did we say that already?
Overview
At the moment, the following resources are available or under development:
Updates to Dyalog v15.0: Builds of Version 15.0 dated July 29th 2016 or later (that is 15.0.27982 or later, which appear in the second issue of the 15.0 installation images), include the following APLX-related improvements:” :
- A fix to an issue with communication between the interpreter and the RIDE, which was causing slow execution of code when using RIDE as the development environment.
-
⎕NREAD
now accepts¯1
for the number of elements to read, meaning read to end of file -
⎕NREPLACE
accepts¯1
as a position, meaning "the current position"
List of Differences: A document containing a list of differences between APLX and Dyalog APL, and a discussion of strategies for dealing with them.
Emulations of APLX Features: The file APLX.dyalog defines a Dyalog namespace containing emulations for APLX primitives and system functions that are different or do not exist at all in Dyalog APL.
]in
user command: This user command is available with all standard installations of Dyalog APL v15.0 or later. It can import files in APL Transfer format (.ATF) that are created by the )out
system command which is found in many APL systems, including APLX. For increasing amounts of online help, type ]?in
, ]??in
(and so on) in a Dyalog session.
Source Code Translation Tool: The APLX workspaces xfrpx.aws
and xfrpcV5.aws
(for APLX v5) are APLX versions of Dan Baronet's xfrpc tool, which creates “enhanced” transfer files. The ]in
user command recognises these files and will perform translation of APLX statements into Dyalog equivalents, including references to the emulation functions.
Test Cases: The file TestAPLX.dyalog contains a collection of tests which put the emulations through their paces. If you have problems with any emulated features, a VERY GOOD THING TO DO is to contribute a failing test which someone will hopefully fix!
Continue on GitHub
For more information, please see the GitHub repository at https://github.com/Dyalog/aplx. Note that GitHub is an open-source platform for sharing code, hosting many projects. It will present you with a list of source files. The best place to start is to read the README.md file, which will begin with the text that you have already seen on this page, but continue with instructions on how to get started.