According to the reference, ios.flush should write any pending data to
the output steam.

My experience, though, is that, unless you have written a newline,
nothing is output, even if you call flush.

For example,

   $defout.print "Hello, world!"

produces nothing

   $defout.print "Hello, world!"
   $defout.flush

produces nothing

   $defout.print Hello, world!\n"

produces "Hello, world!".

Can someone explain this to me?  Have I just misread the documentation?

I've seen this with a number of interpreters, including 1.6.5 on linux,
which is what I'm running at the moment.