Skip to content

Announcements

Notice of new and planned additions, changes, removals, and deprecations in Dyalog v21.0 compared with Dyalog v20.0.

Additions

Dark Mode (Microsoft Windows only)

On Microsoft Windows, Dyalog v21.0 includes experimental support for dark mode. For information on how to enable dark mode and contribute to the evolution of this functionality, please send a message to darkmode@dyalog.com briefly describing the experiments that you would like to perform.

New APL Font

The Dyalog v21.0 installation images include a preview of a new proportional font, currently called APL335. This is to APL333 as APL387 (introduced in Dyalog v20.0) is to APL385.

The font can be explored within the Microsoft Windows IDE (it can be selected from the drop-down font selection list) or at https://dyalog.github.io/APL387/335/.

The design of APL335 has not yet been finalised, and feedback is welcome. Please email your feedback to support@dyalog.com or raise issues in the APL387 GitHub project (https://github.com/Dyalog/APL387).

Information

Although Dyalog Ltd has commissioned the font, we hope that it will become widely used by the APL community. It is intended to be vendor-agnostic, and we believe that it includes all the APL characters used by all APL dialects. It intentionally has, and will continue to have, an extremely permissive licence.

Changes

APL Thread Scheduler

A project is under way to improve the efficiency and "fairness" of thread scheduling; this project will extend over at least two, possibly more, releases. In Dyalog v21.0, the interpreter will perform consistency checks to verify that new algorithms (which will be implemented in Dyalog v22.0) perform correct scheduling. In the unlikely event that discrepancies are detected, the interpreter will write to the Status window or, if it is enabled, the log file set using 109⌶.

If all goes well, the new scheduling algorithms will take effect in Dyalog v22.0. For well-written applications without potential race conditions, the new algorithms should not cause any issues. However, since the order in which threads are dispatched could change, this can trigger or increase the frequency of existing timing-related bugs in application code. Thorough testing of multi-threaded applications should be planned for when upgrading to Dyalog v22.0.

Removals (Previously Announced)

Raspberry Pi Platform

Dyalog v20.0 was the last release to be built for 32-bit Raspberry Pis. To run Dyalog v21.0 on 64-bit Raspberry Pis, use Dyalog for Linux (aarch64/DEB).

Notice of Removals in Future Releases

Information

Dyalog Ltd strongly recommends identifying and replacing deprecated functionality at the earliest opportunity; see Deprecated Functionality for information on how to identify deprecated functionality.

43⌶632 – Generics Operator

43⌶632 has been deprecated; the functionality that it provided is now available using a new [...] mechanism – see Generics (.NET) and Generics (.NET Framework). It is scheduled for removal in Dyalog v22.0.

739⌶ – Temporary Directory

This I-beam has been deprecated; the functionality that it provided is now available using ⎕SYSTEM. It is scheduled for removal in 2029.

1200⌶ – Format Date-time

This I-beam has been deprecated; the functionality that it provided is now available using ⎕DT. It is scheduled for removal in 2029.

Legacy Workspaces

Dyalog v21.0 is the last major version that will support workspaces saved using Dyalog v11.0 or Dyalog v12.0 (workspaces saved using earlier versions are already unsupported). From Dyalog v22.0, the minimum version of a workspace that Dyalog will be able to load will be v12.1.

To update workspaces that were saved using Dyalog v11.0 or v12.0 so that they can be loaded using a future version of Dyalog, you can use )XLOAD and )SAVE in any version of Dyalog from v12.1 to v21.0 inclusive.

Hints and Recommendations

Dyalog Ltd recommends that workspaces are saved without any suspended functions on the stack before loading them into a newer interpreter. To achieve this, run )RESET before )SAVE.

Small-span Component Files

Dyalog v16.0 was the last major version to support creating and updating small-span (32-bit) component files; in Dyalog v17.0 these files became read-only. The ability to access these files even in a read-only state will be removed in a future release (exact release to be decided, expected to be implemented by the year 2030).

External Variables

The ability to create and update external variables will be removed in a future release (exact release to be decided, expected to be implemented by the year 2029).

External variables are no longer supported by default; support for external variables can be re-enabled by setting the DYALOG_EXTVAR_SUPPORTED configuration parameter to 1.

J0C0 Component Files

Component files that have both journalling and checksum properties set to 0 can be tied and read, but cannot be created. The only amendments that are allowed to these files is to change the journalling and checksum properties using ⎕FPROPS.

The ability to read component files that have both journalling and checksum properties set to 0 will be removed in a future release (exact release to be decided, expected to be implemented by the year 2040).

Updates on Dyalog v20.0 Announcements

Legacy Workspaces

Dyalog v20.0 was announced as the last major version that would support workspaces saved using Dyalog v11.0 or Dyalog v12.0. This support has been extended (see Legacy Workspaces), and workspaces saved using Dyalog v11.0 or Dyalog v12.0 are supported in Dyalog v21.0.

Miscellaneous

Documentation

The process of moving documents from the full documentation set into an open source GitHub project is progressing.

Documents that are included in this project are no longer available as PDF files.

Next Dyalog Version

Expected Supported Platforms

The next version of Dyalog (Dyalog v22.0) is expected to be supported on the following platforms/operating systems, although the minimum supported versions might be increased:

  • IBM AIX:
    • AIX 7.3 SP4 onwards with a POWER9 chip or higher
      NOTE: Minimum chip level might be revised upwards to POWER10
  • Linux (including Raspberry Pi):
    • x86_64: Built on Ubuntu 26.04
    • ARM64: Built on Debian GNU/Linux 13
  • macOS (Apple Silicon):
    • macOS 26.3 (Tahoe) onwards
  • Microsoft Windows:
    • Windows 11 25H2 onwards (Windows Server 2016 onwards)