Dyalog APL V18.0 Issue 4 READ ME FIRST

This document contains the latest information about Dyalog APL Version 18.0.

This file is dyalog_readme.htm and is included in the help directory in the Dyalog installation.

Table of Contents

Changes since Issue 3

Dyalog has found defects in some of the code which has been optimised in 18.0. As a result of this Dyalog has decided to recommend that if you have not already upgraded to 18.0 and do not have an urgent requirement for the new features of 18.0 then you should skip 18.0 and wait for the subsequent release. Dyalog has therefore extended the support for 17.1 by an extra release cycle (typically a year). Given this extension we have also decided to reissue 17.1 so that users can pick up all the fixes that have been applied to 17.1 thus far, both for the interpreter and all other parts of the product. More details can be found in the Dyalog blog at www.dyalog.com/blog/.

Although the recommendation against the use of 18.0 in production was removed in November 2020 significant effort has and continues to be put into thoroughly testing those primitives which were optimised in 18.0; five issues have been found in rarely used cases of optimised code, and patches have been distributed: Issue 4 naturally includes all of these fixes:

A number of other issues have been resolved: in particular:

Changes since Issue 2

Dyalog has completed a review of the code in those areas where issues were found. With issue 3 Dyalog is now happy to withdraw the recommendation to not put 18.0 in production.

Changes since Issue 1

Zero Footprint RIDE has been added to all non-Windows platforms. In its most simple form, you can now start Zero footprint RIDE by specifying
where 8080 can be replaced by any unused port.
Additionally, if the interpreter finds a file called ride.ini in (on Windows) My Documents\Dyalog APL-64 18.0 Unicode Files, or (non-Windows) $HOME/.dyalog then it will use the settings in this file. This can be overridden by setting the CONFIG= option in RIDE_INIT. On Windows the directory name may differ depending on which width and edition of Dyalog you are using.

Further work has been done on the documentation.

A number of issues have been resolved in 18.0: in particular:


This section lists various changes and fixes which may affect your application. They have been made in 18.0 rather than in DSS updates since they involve a change in behaviour.

⎕SE.⎕WX now (correctly) defaults to 3, in line with Dyalog's recommendation that ⎕WX is always set to 3.

Dyalog Version 18.0.38400 and later are notarised and should install on macOS Catalina without issue (as does 17.1.38400 and later revisions). However if you attempt to access ~/Documents from within Dyalog you may be presented with an operating system-generated message box asking you whether you want to allow Dyalog to access Documents (the same applies to various other directories). If you respond "no" and at a later date wish to change your mind, or if you don't get prompted, go to Apple->System Preferences->Security & Privacy. On the privacy tab select Full Disk Access and/or Files and Directories: you can amend the list of special directories which Dyalog 18.0 can have access to. This is a feature of macOS Catalina.

Version 18.0 includes a new cross-platform mechanism for defining configuration parameters (more commonly called environment variables on non-Windows platforms). See the Release Notes section on Configuration for more information. This mechanism is integrated with the existing methods, other than that on non-Windows platforms we no longer use ~/.dyalog/dyalog.config.

017889: The APL_TEXTINAPLCORE configuration parameter is now effective on all platforms, and the interpreter defaults to 1 (include the section in aplcores).

Change in behaviour: 017772: In 18.0 if you run ⍞←20↑'hello' ⋄ x←⍞ and only hit Enter, the length of x is 20 - the trailing spaces are no longer removed.
In earlier versions of Dyalog APL in both the ODE (Windows) and tty versions, with expressions like ⍞←20↑'hello' ⋄ x←⍞, if you just hit Enter, the value of x did not include the trailing spaces. From 18.0 onwards it does. This brings it in to line with RIDE and when running without a session. If you remove and add spaces the behaviour has not changed.

We have added support for .NET Core on Windows, Linux, Pi and macOS. Please note that support for .NET Core will only be offered for Unicode interpreters - this will be the case for all supported platforms. 18.0 is only ever likely to support .NET Core 3.1 - in particular support for .Net 5 or later is only likely to appear in future versions of Dyalog APL.
You will need to install the Microsoft .NET Core version 3.1 runtime on your machine. .NET Core should be downloaded from https://dotnet.microsoft.com/download.
On Windows Dyalog will attempt to use the .NET Framework by default, and on other platform it will attempt to use .NET Core by default. This behaviour can be overridden by setting the DYALOG_NETCORE configuration parameter. You will most likley need to set DOTNET_ROOT to the location of those code files if they are installed in a non-standard location (see the Microsoft .NET Core documentation for more details).
Note that .NET Core is not supported on armv6 or earlier, so will only work on Pi3 and upwards.
When reporting problems with the .NET Core support, can you please include the output of the following commands (assuming you can run them !):
'.' ⎕wg'APLVERSION' ⋄ +2⎕nq'.' 'GetEnvironment' 'DYALOG_NETCORE' ⋄ ⎕using←'' ⋄ System.Environment.Version.
Note that we have added the dotNET Core Interface Guide and the dotNET Differences Guide to the help directory (and https://www.dyalog.com/documentation_180.htm).

On Windows, the configuration parameter DyalogHelpDir has always pointed to the directory containing the main CHM file. You can now set it to

Other miscellaneous enhancements

Dyalog had defined the keystroke RZ. However, apparently the code associated with this keystroke was never enabled; we have therefore removed RZ from the list of valid keyboard commands.

The keyboard command FT in earlier versions allows the user to define a keystroke to jump between the navigation and contents panes of the editor. In 18.0 it has been extended so that it now cycles around the navigation pane, the icons in the editor toolbar and the contents pane.


The 18.0 documentation is in the help subdirectory of the installation directory, and can also be found at https://help.dyalog.com/18.0; the PDFs etc can be found at https://docs.dyalog.com/18.0.