Dyalog Version 17.0 was released in July 2018 and is supported under Microsoft Windows, IBM AIX, Linux (including the Raspberry Pi) and Apple macOS. Version 17.0 is faster than any previous release of Dyalog and contains many new additions aimed at increasing developer productivity in a modern computing environment.
Visit the Documentation Centre for Dyalog version 17.0
Download the Dyalog version 17.0 highlights as a PDF
This page discusses highlights of the Dyalog v17.0 release. Additional information regarding the features mentioned below is available online, from several sources:
Performance
As usual, we have done significant performance-related work in this release. Many primitive functions and operators have been enhanced to take advantage of vector instructions on x64, POWER and ARM hardware. 128-bit Decimal Floating-Point operations are a factor of 2 or more faster for most operations. Many algorithms involving Booleans and small range integers, or where one argument is a scalar, have been revisited – often with spectacular results. For more information, see Dyalog version 17.0 Performance.
Multi-Platform/Cloud Computing
Remote/Portable Development Environment
A significantly enhanced version of the RIDE, our cross-platform development environment, has been released with Dyalog version 17.0. In addition to a crisp new look, enhanced performance when editing large functions and scripts, and many new editor features, the RIDE version 4.1 reinstates the floating editor windows that were temporarily lost in the migration to a new, more portable platform for the RIDE itself (Electron).
Dyalog version 17.0 also supports using the RIDE without first installing it on each client computer; if the RIDE is installed on the machine where APL runs, then the interpreter can act as a web server and make the RIDE available using any compatible web browser. The “Zero Footprint” RIDE (so named because no client-side installation is required) has been tested with the latest versions of Google Chrome, Mozilla Firefox and Microsoft Edge.
Source Code Management
Saved APL workspaces, which are single files containing a snapshot of code and data which can be re-loaded in a single operation, are a convenient mechanism that remains popular with personal and casual users of APL. Professional users are increasingly moving towards using Unicode text files for source code. Support for source in text files is significantly enhanced in version 17.0, with the addition of tools that will monitor source folders for changes and automatically respond to actions performed in external source code management systems.
As an example of an enhancement that has been implemented to better support source in text files and external source code management systems, the declaration of local variables can now be spread out over multiple lines of code, to reduce the likelihood that changes made by multiple developers working on independent enhancements to a function will cause a “merge conflict” on the function header line when using source code management tools to auto-merge changes.
Integration
Under Microsoft Windows, Dyalog has a long history of providing mechanisms for tight integration with components written in other languages. The first integration technology was Dynamic Data Exchange (DDE) in the 1990s followed by COM/OLE/ActiveX and, more recently, Microsoft.NET assemblies implemented in Dyalog. Version 17.0 adds a cross-platform mechanism for wrapping APL code as regular shared objects or dynamic link libraries that can be called using any standard foreign function interface on just about any platform. The mechanism produces .so files under UNIX/Linux, .dylib files under Apple macOS, and .dll files under Microsoft Windows.
For integration of components that can be more loosely integrated, or are running on another machine or platform, Dyalog has provided a framework for SOAP-based web services known as SAWS (Stand-Alone Web Service framework). SAWS is now complemented by JSONServer, a framework for RESTful services based on the JSON protocol – an extremely simple mechanism for quickly providing selected functions from an APL application as a service that can easily be called from any language, running anywhere.
The shared library mechanism also supports the use of JSON as a serialization format for arguments and results, which means that the same APL code can easily be exposed as a shared library for use within a single machine, or as a web-based service if that is more appropriate, for example if the service is running in the cloud.
Language Enhancements
Download Dyalog
Dyalog is free to use for educational and non-commercial purposes, including evaluation for potential commercial use.
Visit the Documentation Centre for Dyalog version 17.0
Download the Dyalog version 17.0 highlights as a PDF