なんか古臭い感じなTranscriptのendEntry

Transcript*2 に cr を送信しても、実際にトランスクリプトGUI)でキャレット位置が「改行して移動」するわけではない、というありがちな罠のほうのは大丈夫ですか?

大丈夫じゃなかったです。Squeakの情報見てると、

Transcript cr; show: 'hoge'.

って具合に、まずキャリッジリターンを送って、それから表示内容を送るってなってる。常識的には、最後の改行するもんだから、妙な感じはあったけど探検してなかったら、そのわけが、

WriteStream >> #cr が、たんにメッセージ「nextPut: Character cr」のショートカットなのに対し、TranscriptStream >> #show: には #nextPuAll: の単純なエイリアス以上の仕組みがある…


ってことだった。
Transcript >> #show: のコードを見ると、

show: anObject  "TextCollector compatibility"
	self nextPutAll: anObject asString; endEntry

endEntryなんてのがある。なるほどぉ。CとかC++でもfflushやcout << flushがあったりするけど...
TranscriptのウィンドウがアクティブになったらTranscript >> #endEntryメッセージが送られるとかしてくれればいいのかな。
Transcriptの実装を知らないとメッセージに対する期待通りの結果が得られないってのは、何だか古臭い感じだなぁ。