The recordings released this week focus on active development projects at Dyalog Ltd.
The first three presentations describe features that are expected to be in the next version of Dyalog. In Setting and Getting Variable Values Mk II, Adám Brudzewsky describes a set of new system functions for setting and getting variables’ values using arrays. Until now, this required the use of the primitive function execute (⍎
), in ugly and inefficient expressions. Also, execute is increasingly seen as a potential security risk, as careless use allows code injection attacks – so these new Dyalog v20.0 features will not only increase the readability and performance of application code, they will also make applications more secure.
John Daintree returns with WC Plugins. This is not a talk about tools for unclogging drains, but a general mechanism that will allow both the Dyalog development team and users of Dyalog to create self-describing libraries in C, which the ⎕WC
(and ⎕NEW
) system functions will be able to create instances of, in the same way that they can currently be used to create GUI objects and OLE or OCX components. This will allow us to open-source parts of the Dyalog interpreter, such as our HTMLRenderer interface to the Chromium Embedded Framework, the Conga interface to TCP and UDP, and an upcoming cryptographic library. It will also make it easier for users to contribute to the Dyalog ecosystem.
Peter Mikkelsen is one of the youngest members of the Dyalog development team. In New Function for Shell Calls, he describes the work that he has done to create a modern version of one of the oldest system functions in Dyalog APL – the ⎕SH
function for making shell calls (known as ⎕CMD
under Microsoft Windows). Among other things, this new function can be interrupted and can run the shell command on a separate operating system thread. It allows you to separate and redirect output streams, and specify what encodings are used. It even allows you to stream output to and from the external code asynchronously, using tokens and callbacks. It is slightly surprising that it cannot make toast!
The other two recordings this week are about features that are already available, but more people need to know about!
Adám Brudzewsky shows how text files containing APL code or data are all that you need to define and run an application in Initialising and Starting from Text Files. You can also extend your APL development environment with a few text files in the right place!
Finally, in New Tatin Packages, Brian Becker reintroduces the Tatin package manager, and describes three new Tatin packages that Dyalog Ltd have recently made available – a package for loading and using .NET packages hosted in the NuGet system (dyalog-NuGet), a package for managing APL processes in the same way on all platforms supported by Dyalog (dyalog-APLProcess), and a somewhat experimental package for tapping into the OpenAI platform and generate images, have conversations with large language models (LLMs), and access other “Artificial Intelligence” features (dyalog-OpenAI).
——————————————
This week’s videos:
- D04: Setting and Getting Variable Values Mk II (Adám Brudzwesky)
- D05: WC Plugins (John Daintree)
- D10: Initialising and Starting from Text Files (Adám Brudzwesky)
- D11: New Tatin Packages (Brian Becker)
- D12: New Function for Shell Calls (Peter Mikkelsen)
Materials for all presentations can be downloaded from the Dyalog ’24 webpage.