The following examples will fail to open a plot window in the REPL (notably 
without warning or error, making it devilishly hard to troubleshoot).

using Plots                               # This is common to all plotting 
platforms as far as I know
function test(); plot(); print(); end
test()                                    # Fails to plot, returns with no 
result

plot();                                   # Fails to plot, returns with no 
result

The solution is to do:

display(plot())                           # Works in all cases

I understand and support the desire to provide output suppression (I code 
in matlab most often and am very familiar with that feature).

However to default to UI windows being blocked seems like very un-intuitive 
behavior to me. And this is not the way matlab handles UI windows, 
semicolon or not, UI windows are displayed.

Furthermore, the result of simply adding a semicolon to plot, or adding a 
print statement after it in a function is that it silently fails, and in an 
unexpected/unintuitive way.

Is there a good reason for UI functions to be blocked like this? Or is it 
something that should be a feature request?

Reply via email to