Dyalog APL V20.0 Issue 1 READ ME FIRST

This document contains the latest information about Dyalog APL Version 20.0.
This file is dyalog_readme.htm and is included in the help directory in the Dyalog installation.

Table of Contents

819⌶

Summary

Documentation

With 20.0 we are starting to move all of our documentation to use Markdown, and to store the source on GitHub; this will take several versions to complete.

Notable Fixes

The list of fixes below contains the more notable changes to version 20.0. Other fixes have been committed - for example there have been around 70 commits made as a result of the fuzz testing that we run continually. (Fuzz testing was mentioned in Uncle Andy's Fireside Chat in the list of presentations at Dyalog '23.

IDDescription
6048dfn in :Until statement which is followed by :AndIf or :OrIf produces a SYNTAX ERROR
9151reformat does not work well when :while/:until/:orif statements are used
12845Enhancement: allow the user to select and copy mulitple entries in the results box in the Find Objects tool
15532Reformat places input cursor outside edit window
16399Displaying futures that are returned from threaded calls can generate a syserror 999
16628100% CPU usage with 60 threads that are doing :Hold or ⎕TGET requests that will not be fulfilled
18129The interpreter should assume that the contents of a .aplf file is a function unless there is evidence to the contrary
18732⎕FIX fails on multiple items if first item is a dfn
19014⎕NREAD with count = ¯1 on a FIFO reads zero bytes
19394Unexpected stop in destructor if you )reset or → while tracing
19732Editor: the error msgbox shown when attempting to edit an object defined in since-deleted file does not honour DYALOG_NOPOPUPS
19832If you assign F3 for NX in Options->Configure->Keyboard shortcuts, you cannot type lowercase r in the Editor quick search field
19847Keeping namespaces alive by *only* having references to their children can lead to very bad performance
2067764-bit Dyalog: the session disappears if you give a Label a Caption with more than 1023 characters
20687The caret is in the wrong position in the expression 1+2)3+4
20715Localise keystroke does not work editing namespace with incomplete control structures
20722⎕NGET and ⎕NPUT should support a matrix representation of file data
20888Left-inverse of ⊥ with scalar left and negative scalar right argument returns a wrong result.
20906⊃⎕AT on derv returns 0 0 0
20926Editor reformat messes up JSON syntax
20936Using retained hash tables with dyadic iota seems not to produce a speed-up
20985⎕JSON should include ⎕IO when reporting bad row in matrix
20998With “Skip blank lines when tracing” enabled, a function won’t resume after a ⎕STOP if the following line is blank
21092⍎8000⍕300⍴1 stops displaying after a while, and then APL disappears/segmentation faults
21255Dyalog disappears if you ⎕CLEAR after creating a link and using -watch=both on .NET Framework 4.x
21305⎕NC in public shared method produces incorrect result.
21307Cmplx÷0 does not give any ⎕DMX.Message
21319Hashed array in a class field loses its hash table if you extend it
21332Keyboard Shortcuts dialog: set the initial sort order to alphabetic on the first column (code)
21335Unexpected async state SYNC_DONE_ASYNCGETPROP raised from .NET 8 interface Dyalog.Net.Bridge.Host.Windows.dll
21349Confusing error when fn.⎕nl 2 attempts inner product
21354Editor: Reformat adds trailing blanks until all lines have equal length
21357Windows only: 1⎕NPARTS'' gives C:// with extra slash when current dir is C:\
21433:trap 0 ⋄ →0 ⋄ :end generates a syserror 999
21434⎕JSON, dialect JSON5, does not emit "unnecessary" commas when exporting from Matrix format
21457Under some circumstances, ⎕NTIE will fail to open a file instead of retrying read-only
21459⎕JSON⍠'Dialect' 'JSON5' rejects all control codes < U+0020 in strings
21466⎕JSON⍠('Dialect' 'JSON5')('Format' 'M') cannot export 'NaN', 'Infinity' etc.
21467HASHED arrays FPTR saved in workspace not swapped
21475⎕NS should set field values rather than grey-space names
21486⎕ATX thinks optional left argument is invalid name
215002023⌶ has no result
21507Settings specified in a config file with numeric values don't necessarily get processed correctly subsequently
21509dyalog script (mapl) can pick up environment variables and lead to unintended startup behaviour
21510JSON name mangling (7162⌶) should handle multiple names
21522)COPYing a workspace containing a reference to # can syserror or hang
21524File menuitem Export to Memory is greyed out in a Dyalog workspace which has a class with a .NET base class
21538Override does not work in a class method where the class has a .NET base class
21542Add a ⎕DMX message for when × gives a DOMAIN ERROR because of out of range result
21569Non-empty ⎕DMX is not correctly handled by ⎕NA
21573HTMLRenderer events stop happening after opening and closing a modal form
21575RS and LS keys no longer defined in Unicode edition
21582Classic Dyalog .NET compiler generates an executable which does not work unless you specify the -console option
21583Classic Dyalog .NET compiler does not honour the -nonet flag and does not work unless you explicitly specify -framework
21638.NET methods generate VALUE ERRORS rather than returning NULLs if called on threads other than thread 0
21642Cannot remove a range even if you have not put any tokens into it and ⎕TGET call timed out
21655Dyalog starts in C:\Windows
21662The shape field in the statusbar is not updated to reflect a change in an array that is being displayed in the editor
21664Sometimes Parked threads can get re-scheduled
21697⎕trap←0 'E' '' ⋄ [←+⋄] leads to a syserror 999 or 41
21718(#.A ⋄ #.A) gives a SYNTAX ERROR
21729Editor fails to repaint after closing paren
21738Add DMX Message when namespace depth is exceeded.
21744Dyalog disappears due to unhandled FileSystemWatcher exception if edit and save a function in a linked namespace after saving ws
21746Dyalog exits after a .NET 8 interface Unexpected async state to do with Link, editing and saving a workspace
21770Indexed assignment to a Simple Property generates a RANK_ERROR
21772Session Text cursor does not reappear after closing a Form with a close callback
21794⎕FIX ignores tradfn after dfn
21800Tracer/Editor: in a ⎕ns'' loop with the editor open on a variable in the ⎕ns'' an attempt to update the var generates a 999
21821Syserr pasting Interface example into session
21828Crash referencing .NET names with ]OUTPUT.Rows ON
21834Strong Interrupt should stop multiline input.
21838Editor incorrectly splits lines in a function on UCS 13s
21851Syserrors if edit windows are open before RIDE is connected
21859Make HotSpot a settable property on a Cursor object
21878A syserror 999 is generated when running multiple times a mal-formed tradfn and clearing the stack via the tracer
21894<UA> should undo multi-line input
21914Standalone editor (dyaedit) hangs when attempting to save a namespace which calls a function which generates an untrapped error
21936With .NET Core ⎕EXCEPTION does not work if exception does not occur on the main thread
21979Calling Array.CreateInstance on another thread with .NET >6 does not return a instance of a .NET array
21986<Home> should only stop to the left of text; <End> only to the right of text
21987Editor should not allow changing label values
220020(⎕JSON ⎕OPT'Dialect' 'JSON5') '{/* **/}' errors when there are an even number of "*" before the closing "/"
22008Holding down a cursor key to navigate a Grid with many check box buttons is slow if ShowInput is 0
22011Alt+F4 does not close dyalog
22018When NINFO is used to set file properties, it returns the old value not the new one.
22039Disabling syntax colouring in the session doesn't work completely
22041As per C#, "nested" classes should be able to see private members of their "outer" classes
22094Unexpected syntax error fixing class into class when the classes have members of same name
22102Local variables in shared methods are included in instances if they are created within such functions
22103Adding a trigger to an OO field changes its nameclass
22111syserror 999 at )OFF after ]Rows on with dyalog -s
22112Syntax colouring for :repeat...:until...:orif shows error on :orif if :until expression uses parenthesis or braces
22149After using ⎕WS to set a RichEdit's CharFormat property, a subsequent ⎕WG 'CharFormat' does not give back what you set
22175Domain error when setting Font property when creating an object with ⎕NEW
22185Hang when ⎕NS merges two innocent nss
22187Printing a long line with CRs allocates too much log if ⎕PW is large
22196Unicode normalisation of mixed array only works for vectors (not higher rank)
22205scandir DMX info can be wrong when directory + filename lengths exceed max length
22219Typing into Windows GUI in a stand-alone executable is "broken" if RIDE is connected
22221⎕WG 'Event' on "system actions" (e.g. [wsload]) returns an empty array for the action
22228Our Dialog boxes don't display the correct font on new Windows 11 installations (perhaps non English installations)
22254Options|Configure|Trace/Edit dialog cuts off the bottom of the "if not suspended fix" drop-down combo
22255Find objects dialog is missing last character of the word "previous" if MS Windows scaling setting is 100%
22271Cursor disappears from session if a function calls ⎕ED and then asks for ⍞ input
22301Add a ⎕SHELL output encoding type which causes conversion to happen like in ⎕SH
22303Print Setup, Trace/Edit and Export dialogs have truncated text on Microsoft Windows
22333RD in the session when using the lineeditor to edit a function doesn't work properly
22359Syntax colouring is wrong in second and subsequent :OrIfs after a :Until
22363⎕DMX.(⎕NS) fails producing a DOMAIN ERROR
22408Non-Windows: The HTMLRenderer thread incorrectly uses the settings APIs (which aren't thread safe
22410Incorrect line reported for SYNTAX ERROR in dfn.
22414<RD> in the session fails to mark as changed
22422Use status field to indicate all input modes
22450⍞ input becomes syntax coloured after removing text in the session
22459Error caret incorrectly placed if a "space tagged" function doesn't return a result
22476Dyalogscript takes arguments passed to a .apls script when it should not
22479Options|Configure|Trace/Edit dialog is missing the If not suspended" drop-down combo on text scale factor 200% on MS Windows
22484Creating HTMLRenderer object twice can lead to a hang under certain circumstances
22493Sometimes, setting the HTML property of an HTMLRenderer stops working
22504Error is incorrectly reported against the line in a dfn where a derived function is defined
22517Dyalog crashes in ⎕FIX if you use ← to initialise a field but forget to specify a value