Now that I can see how printing '' as CR affects a larger program, I've
gotta say that I'm stumped as to how this behavior can be considered
usable.
Specifically, it's now (unless there's a trick I haven't yet discovered)
difficult (see below) to silently (i.e. without affecting the display)
execute an arbitrary expression that may, depending upon the expression,
return either '' or nothing at all.
I dunno... maybe that's not something that anyone else has ever done.
But here's an extremely common idiom that breaks badly under the new
print behavior:
⍎test/'expression'
This is just a conditional execution of an expression. The problem with
the new print behavior is that this line will print a CR whenever the
test is false. Not OK...
If we're going to stick with this new behavior, I can adapt. I've even
discovered a (rather tortured-looking) solution to the use-case I posed
in the second paragraph:
∇sink v
⍝ Consume value; no display
∇
sink '0' ⎕ea ',⍎l'
On the other hand, it's surprising to me how this new behavior affects
so much else.