Dyalog Presentations
D01: Welcome to Dyalog '24 summary | slides (PPTX) | slides (PDF) | video (13 mins)
Stine Kromberg, Managing Director (CEO)
Dyalog Ltd's Managing Director opens the user meeting.
D02: The Road Ahead summary | slides (PPTX) | slides (PDF) | video (33 mins)
Morten Kromberg, Technical Director (CTO)
In accordance with tradition, Morten looks briefly back over his shoulder before turning his gaze to the future, presenting his view of the road that lies before Dyalog Ltd and users of Dyalog. How many times will he mention Large Language Models?
D03: Array Notation: A Journey of Discovery summary | slides (PPTX) | slides (PDF) | video (31 mins)
John Daintree
John's never been 100% convinced about the proposed Array Notation. He's been on a voyage of discovery...find out where he ended up.
D04: Setting and Getting Variable Values Mk II summary | slides (PPTX) | slides (PDF) | video (12 mins)
Adám Brudzewsky
At Dyalog '23, Adám proposed an approach to assignment and using the value of variables with dynamic names, to replace the current solutions that suffer from poor readability, performance, and safety. The design has now evolved to be both more intuitive and more versatile. Adám presents an update and demonstrates usage.
D05: WC Plugins summary | slides (PPTX) | slides (PDF) | video (27 mins)
John Daintree
John demonstrates extensions (and some simplifications) to the DWA interface that allow the creation of external ⎕WC objects. Dyalog Ltd intends to use this mechanism to re-implement the HTMLRenderer object.
D06: Static Analysis of APL in APL summary | slides (Prezi) | slides (PDF) | video (22 mins)
Brandon Wilson
APL as an interpreted language provides unique challenges for verifying correctness. Recently, Brandon has started work on static analysis of APL code using the Co-dfns interpreter as a back end; the aim of this work is to provide an ergonomic tool to statically specify desired properties of APL codebases. Brandon reports on the initial steps of his proof-of-concept.
D07: Everywhere WC summary | slides (PPTX) | slides (PDF) | video (27 mins)
Morten Kromberg
Many existing applications are written for the Microsoft Windows desktop using the ⎕WC family of system functions (WC stands for Window Create). EWC is a project that aims to allow many – maybe, eventually, most – GUI forms written in this style to be moved to the web, or to non-Windows desktops, using the HTMLRenderer, with minimal changes to application code.
In addition to reproducing capabilities of ⎕WC, the EWC project adds a handful of JavaScript-based objects that do not exist in the Microsoft Windows implementation; these include a ribbon control, an ApexCharts widget, and experimental use of "Flex" to position controls as an alternative to setting position and size.
EWC is an open-source project, and one design goal is to allow users to add additional widgets as required.
D08: The APL Forge – Introduction and Prize Ceremony summary | slides (PPTX) | slides (PDF) | video (4 mins)
Stine Kromberg
What is The APL Forge? How do you compete, and who won the 2024 round? Stine introduces this new competition, which has replaced the International APL Problem Solving Competition (Phase 2) that ran for the last 15 years, culminating in the award ceremony for the winner.
D09: Migrating APL+Win Applications summary | slides (PPTX) | slides (PDF) | video (26 mins)
Morten Kromberg and Karl Holt
Dyalog Ltd has been engaged to port an APL+Win application to Dyalog. An important part of the project is the creation of open-source tools that will be made available free-of-charge for similar migrations. These include tools to:
- move APL+Win source code to text files, and use Git to share the same source code between the APL+Win and Dyalog versions of a code base.
- automatically rewrite code to handle many language differences.
- emulate ⎕WI GUI and other system functions.
- continue to use APL+Win component files during the migration process.
Morten and Karl introduce these tools and explore future development in this area.
D10: Initialising and Starting from Text Files summary | slides (PPTX) | slides (PDF) | video (12 mins)
Adám Brudzewsky
With the release of Dyalog version 19.0, it is now possible to both initialise your session and start your application straight from text files, without any involvement of binary files such as session files and saved workspaces. Adám demonstrates how you can make your favourite development tools available and launch your code — all directly from text sources.
D11: New Tatin Packages summary | slides (PPTX) | slides (PDF) | video (30 mins)
Brian Becker
Tatin is a package manager for Dyalog. Brian introduces some of the new Tatin packages introduced in the last year:
- NuGet simplifies loading and incorporating .NET packages in your applications.
- APLProcess makes it easy to launch additional APL processes to distribute workload or run in code in an isolated environment.
- OpenAI implements an interface from Dyalog to OpenAI's API, which enables the integration of AI capabilities in your applications. OpenAI can also serve as a template for how to use HttpCommand to implement interfaces to other AI frameworks.
(For more information on Tatin, see Morten's Dyalog '22 presentation "The P words…Projects and Packages")
D12: New Function for Shell Calls summary | slides (PPTX) | slides (PDF) | demos (ZIP) | video (21 mins)
Peter Mikkelsen
At Dyalog '23, Peter identified some issues in monadic ⎕SH/⎕CMD and proposed a design for a new system function, ⎕SHELL, that fixes those issues. Since then, the design has been refined and improved based on feedback. Peter demonstrates the revised ⎕SHELL system function that will appear in Dyalog version 20.0.
D13: Co-dfns Roadmap and Updates summary | slides (PPTX) | slides (PDF) | video (21 mins)
Aaron Hsu
Aaron presents work that has been done in the Co-dfns compiler to improve integration and support for traditional APL code, as well as a roadmap for these features into the future. He discusses the performance and features of present releases together with caveats, recommendations for using the compiler, and some unique things that Co-dfns can help you to do with APL.
D14: Data Parallel Proof Verification in APL summary | slides (Prezi) | slides (PDF) | video (20 mins)
Brandon Wilson
Formal proof verification of large mathematical databases requires a lot of processing power. Metamath is a simple and flexible computer-processable language that supports rigorously verifying, archiving, and presenting mathematical proofs, and is particularly efficient when processing data in a data-parallel manner. APL provides opportunities to perform verification in a data-parallel manner. Brandon shows how APL can be used to perform data-parallel proof verification of Metamath, something that is not offered by existing Metamath systems.
D15: ullu – A Test Framework for Dyalog APL summary | slides (PPTX) | slides (PDF) | video (17 mins)
Aarush Bhat
ullu is a new testing framework for Dyalog APL that rigorously tests the functionality of each of the primitives. One of the central aims is to get close to 100% source code coverage, to verify the accuracy and reliability of Dyalog APL.
Aarush introduces this new framework, and demonstrates how he has achieved almost 100% code coverage for the primitives that have been incorporated so far.
D16: Interpreter Limits summary | slides (PPTX) | slides (PDF) | video (25 mins)
John Daintree
There are many limits in the Interpreter, some of which you might know about (for example, a maximum rank of 15) and some of which you might not (for example, a depth limit of 256 parentheses in a function). Some limits are easy for us to change, others less so. John discusses the whats, whys, and hows of these limits, how we might change them, and the impacts of doing so.
D17: Closing Session summary | slides (PPTX) | slides (PDF)
Stine Kromberg
Dyalog Ltd's Managing Director closes the user meeting.