Line in a routine with XECUTE of a literal works correctly

Final Release Note

Routine lines with an XECUTE of a literal string followed by one or more commands (i.e., the XECUTE is not the last command in the line) work correctly. Previously, an optimization of XECUTE of literal strings in routines caused such lines to execute incorrectly. For example, the line W !,"start" X "F J=1:1:0 W !,J" W !,"stop" in a routine works correctly, whereas previously it would print "start" but not "stop". The workaround was to assign the literal to a variable. Direct mode was unaffected by this issue. [#440 (closed)]

Description

The line of code W !,"start" X "F J=1:1:0 W !,J" W !,"stop" works correctly when executed in direct mode, but xecutebug.m returns incorrect results:

YDB>d ^xecutebug

start
YDB>zprint ^xecutebug
xecutebug
	W !,"start" X "F J=1:1:0 W !,J" W !,"stop"
	Q

YDB>W !,"start" X "F J=1:1:0 W !,J" W !,"stop"

start
stop
YDB>

The upstream issue reports that this worked correctly in a GT.M V5.1 release.

Draft Release Note

Edited by K.S. Bhaskar