Previous Article
Return to Newsletter
Next Article

Dyalog APL Version 13.1 Highlights

Dyalog APL Version 13.1 for Windows is now commercially available in 32 and 64 bit, Classic and Unicode versions. If you are a DSS+ subscriber or have a licence that entitles you to upgrades, you can download Version 13.1 for Windows directly from the DSS area of our website.

AIX and Linux versions are also available and Solaris versions are available on demand. For more information please contact

Upgrade prices remain unchanged since 2006.

A brief summary of new features follows below. For detailed information about the new release, see:

Version 13.1 – Summary of enhancements

  • New system function ⎕FHIST – The new File History system function provides information about certain file events. This includes information about which user created the file and when, which user last tied the file and when, and which user updated the file and when. This feature has been added to support users migrating from the SHAREFILE/AP system.
  • New system constant ⎕DMX – Version 13.1 adds significant new error reporting functionality, in the form of a system variable which has been named ⎕DMX. ⎕DMX is designed to make error handling simpler, more complete and more accurate.
  • More Information: ⎕DMX is a namespace with a number of properties, which provide much more information about errors than did the old variables (in version 13.1, only a few primitives and system functions take advantage of this; full support will evolve over the next several releases). Application code can also provide more error information, as ⎕SIGNAL has been extended accordingly.
  • Thread Safe: ⎕DMX is local to each APL thread: An error occurring in one thread will not change the value of ⎕DMX in other threads. This is not the case for ⎕DM and ⎕EN.
  • Isolation of Handled Errors: ⎕DMX is local to the code which is invoked to handle an error, in such a way that successfully handled (trapped) errors will leave no trace of the handled event.
  • Backwards compatibility: The behaviour of the existing variables ⎕DM (Diagnostic Message) and ⎕EN (Event Number) is unchanged. Dyalog recommends that applications which reference the old variables be modified to use ⎕DMX as soon as this is convenient.

Performance Improvements

Version 13.1 introduces a number of performance improvements as follows:

  • Empty-Line Processing – The interpreter now requires less time to process empty lines in functions. Note: this improvement is also implemented in Version 13.0 from 3rd January 2012 onwards.
  • Dyadic Iota – The code for dyadic iota (Index Of) has been optimised, giving a small performance improvement in most cases. This improvement is independent of the use of retained hash tables, which delivers additional performance benefits as before. Note: This improvement is also implemented in Version 13.0 from 3rd January 2012 onwards.
  • New Idioms – Two new idioms have been added. These are:
         0=⊃⍴ ⍝ Is first dimension empty (⎕ML<2)
         0≠⊃⍴ ⍝ Is first dimension not empty (⎕ML<2)
    Note: these idioms were also added to Version 13.0 from 22nd December 2011 onwards.
  • Take – The performance of an expression such as N↑1 has been improved significantly in Version 13.1 compared to previous versions.

URL String Support

Version 13.1 introduces support for URL string recognition; by default when the interpreter recognises a URL in the session or tracer/editor it will underline the URL. Control and Left-click on the URL string will cause the URL string to appear in the default browser (and similarly for mailto: URLs).

Enlist and Selective Assignment

Enlist (ε) may be used in selective assignment expressions.


Other Changes in Version 13.1 include:

  • New defaults for component file properties
  • Large Component Support
  • Compatibility checking
  • PrintList property
  • Miscellaneous

To download a PDF of the full release notes, please click here.


Previous Article
Return to Newsletter
Next Article