Você pode precisar liberar o arquivo de saída. Após cada puts
adicione a linha
flush stdout
Veja o comando tcl flush . Alternativamente, você pode definir a saída para o modo não-buffer com uma única linha:
fconfigure stdout -buffering none
Veja tcl fconfigure .