On Sat, May 9, 2015 at 5:29 AM, stepharo <stepharo@free.fr> wrote:
Eliot

I changed the transcript because it is not thread safe so I could use it at all to explain concurrent programming output.
It was terrible.

I don't see what that has to do with my usability point.�� The transcript was
a) a stream
b) something that displayed its output immediately

Those two features are essential.�� If you change the transcript so that it no longer has those features you have broken it.

Igor waffled on about internals, the desire to separate the UI from the stream, a point that has nothing to do with the utility of the transcript.�� No you're going on about its thread-safety.�� But no one is addressing my point.�� And you have Cl��ment telling you that he cannot develop the VM in Pharo because the transcript is broken, and you have others proposing various potentially error-prone work-arounds to get around the fact that the transcript is broken.

Why won't anyone stand up and say yes, the transcript is broken and yes we will fix it?�� This is dysfunctional.


Stef


Le 8/5/15 16:16, Eliot Miranda a ��crit :

Hi,

�� �� ��if one uses a at doit transcript then no special action is required to get output to appear beyond sending flush to Transcript right?�� So any solution that requires special action to get the moronic transcript to work us broken.�� We should fix the transcript, not expect every application to work around a bug.

Eliot (phone)

On May 8, 2015, at 6:15 AM, Alain Rastoul <alf.mmm.cat@gmail.com> wrote:

Le 08/05/2015 11:34, stepharo a ��crit :
Hi guys

the Transcript in Pharo is that it's not asynchronous so I can't use it
in VM development to show the current progress of the simulation. For
example:
1 to: 100 do: [ :i |
�� �� ��0.1 seconds asDelay wait.
�� �� ��Transcript show: 'x'. ]
=> on Squeak, this shows a x every 0.1 second in the Transcript
=> on Pharo, nothing happens during 10 seconds then all the x are shown.

https://pharo.fogbugz.com/default.asp?15515
Yes, as do it are evaluated in the World morphic process, running in a forked process or sending World doOneCycle in the loop solve the problem.

Probably in squeak, in Transcript this is done somewhere under the hood.

via dependents ?

TranscriptStream>>endEndtry
�� �� "Display all the characters since the last endEntry, and reset the stream"
�� �� self semaphore critical:[
�� �� �� �� self changed: #appendEntry.
�� �� �� �� self reset.
�� �� ].

Object>>changed: aParameter
�� �� self dependents do: [:aDependent | aDependent update: aParameter]

And probably not doOnecycle since you cannot do anything else during execution (clicking or moving windows).


--
Regards,

Alain









--
best,
Eliot