[Pharo-project] [squeak-dev] Re: Cog VM -- Thanks and Performance / Optimization Questions

Juan Vuletich juan at jvuletich.org
Fri Feb 18 19:33:59 CET 2011

Hi Eliot,

Eliot Miranda wrote:
> Hi John,
>     good questions.
> On Thu, Feb 17, 2011 at 6:21 AM, John B Thiel <jbthiel at gmail.com 
> <mailto:jbthiel at gmail.com>> wrote:
>     Cog VM -- Thanks and Performance / Optimization Questions
>     ...
>     (Also, any notoriously slow subsystems?  For example, Transcript
>     writing is glacial.)
> Someone should replace the Transcript's reliance on (I think) some 
> kind of FormMorph which moved huge numbers of bits on each write.  But 
> this is not a VM issue.  It's a Smalltalk issue.  Whoever did this 
> would instantly become a hero.

There are other problems with Transcript besides performance. It is easy 
to break the UI if called at the wrong times. In those cases, it is 
usually needed to kill Squeak from the OS. Besides, it is not thread safe.

Instantly becoming a hero sounds cool, so this is my attempt at it :) I 
only tried this in Cuis, but I believe it should work on Squeak and 
Pharo without much trouble. After loading this code, you can evaluate 
'Smalltalk at: #Transcript put: NewTranscript'.

Some good properties of this are:
- Very fast.
- Thread safe!
- Doesn't use Morphic at all. Can be used to debug Morphic itself.
- Doesn't do delayed execution (no events, no forked processes). 
Immediate visual feedback.
- Can show itself on Display, log to File, both, or none.
- Can be used for headless or remote images (for example, web servers).

Some possible downsides are:
- Output only. Not a text editor. We have the Workspace and the 
Transcripter for that.
- No seamless Morphic integration. I'll do one for Cuis, though.

If no serious problems are found, I'll remove TranscriptStream from 
Cuis, and rename this class as Transcript.

Juan Vuletich
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0803-NewTranscript-jmv.3.cs
URL: <http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20110218/1983c6a1/attachment.txt>

More information about the Pharo-project mailing list