`flush` output after `say`

Any reason why in `say` there's `flush` after `print` but not after `puts`?

I've noticed that if I pipe output to file, it's not written there until exit of program, but once I do `say('text ')` it's flushed/written to file and I think it's quite inconsistent/confusing

this PR adds flush after both print/puts :)