
Francesco Garue of SimCorp Italiana
In week 5 of the Dyalog ’19 videos, Francesco Garue tells how, after APL Italiana was acquired by SimCorp and became SimCorp Italiana, the two development teams got to know each other by sharing some code. At the time, APL Italiana’s SOFIA product contained a “Rebalancer”, a central component of Asset and Liability Management systems, capable of adjusting the contents of portfolios of financial instruments to bring them into alignment with investment rules or limits. The rebalancer had functionality which could be useful to add to SimCorp Dimension. Francesco tells the story of how a team of Danes, Ukrainians and Italians worked to extract and refactor the components so that it could be shared by the two products.

Geoff Streeter tells the story of shared code files
The two Dyalog talks this week are both about improving performance. Geoff Streeter explains the ideas behind a new way to save workspaces in a format known as a shared code file. Shared code files can be memory mapped, making the contents immediately available to the application, even though only a small part of the file is actually loaded. Functions in a shared code file are only loaded from file if/when they are used. For applications that have a large body of code, only a fraction of which is used in any particular user session, this can mean a huge reduction in application start-up time. If several processes run the same application on a machine, then process starts after the first one run faster still, because the most frequently-used code is already loaded into memory. As code is shared between the processes, there is a reduced memory footprint in addition to the increased performance.

Marshall Lochbaum
One of the most widely used mechanisms for iteration in APL is the reduction operator, which injects its operand function between elements of an array. For example, (+/1 2 3 4) is the “plus reduction” of the first four positive integer, computed as 1+2+3+4. In his talk on “Implementing Reduction”, Marshall Lochbaum explains how, for many of the most commonly used reductions using functions like + - × ⌈ and ⌊ on integers and doubles, and a much larger set of functions on Boolean arrays, he has worked to make the reductions run as fast as possible. To Marshall, that ideally means “as fast as the arguments can be loaded from memory”.
Summary of this week’s videos:

Follow








2019 is the first “Year of the Hammer”: after seven years of Norse wyrms and seven years of Viking ships, we were now entering the era of seven hammer-inspired logos. As Gitte explains in her talk, we are celebrating the first year under Thor’s Hammer by making Dyalog APL freely available for non-commercial use – without requiring registration – under Microsoft Windows, Apple macOS and GNU/Linux (including a collection of public Docker images). The intention is to make APL much more easily accessible for experiments – especially in the cloud!
After last year’s Technical Road Map, which was almost entirely a live demonstration of using APL with modern development tools like Git, VS Code and Docker, I decided to play it safe this year and do no demos at all in my keynote. Instead, I concentrated on explaining some of our thoughts about making Dyalog APL easier to discover, learn and integrate into modern frameworks and development processes – and making applications written in APL easier to deploy and maintain. As a result, despite the world premiere of our new Webinar Jingle, composed by Stefano Lanzavecchia (
The title of John’s talk was “Cor(e) Blimey!”. The Cor(e) is of course a reference to Microsoft’s “.NET Core” but if English is not your first language, the title of John’s talk may need a little explanation. “Cor blimey” is an exclamation of surprise, a euphemism derived from “God Blind Me”. In this talk, John explains how Dyalog is poised to provide a bridge to Microsoft’s new portable, open source version of .NET. Scheduled for release with Dyalog version 18.0 next year, this will provide APL users with access to a vast collection of libraries under Linux and macOS, in addition to Windows.
