http://build.squeak.org/ is your best bet. Grab from the SqueakTrunk job's last successful build. frank On 11 Oct 2013, at 8:09, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
I do not know I could not find a squeak image with the latest code and the update is not working from the june image. Now the newtext model should replace all that but still - we need to benchmark it - release it Stef
Me too.
What exactly doing this code?
Paragraph new compose: tm text style: tm textStyle copy from: 1 in:
Is it layout building stuff at new text model?
2013/10/11 Stéphane Ducasse <stephane.ducasse@inria.fr> Hi Igor
it would be good to see how the new text model perform.
Stef
Begin forwarded message:
From: Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com> Subject: Fwd: Small text composition bench Date: October 10, 2013 10:46:42 PM GMT+02:00 To: Stéphane Ducasse <stephane.ducasse@inria.fr>
---------- Forwarded message ---------- From: Nicolas Cellier <nicolas.cellier.aka.nice@gmail.com> Date: 2013/10/10 Subject: Small text composition bench To: The general-purpose Squeak developers list <squeak-dev@lists.squeakfoundation.org>
Here is a simple bench:
(StringHolder new contents: (Compiler evaluate: (FileStream fileNamed: 'text.st') contentsOfEntireFile )) openLabel: 'Working With Squeak 2' . ((SystemWindow allSubInstances detect: [:e | e label = 'Working With Squeak 2']) findDeepSubmorphThat: [:m | m class = PluggableTextMorphPlus] ifAbsent: [] ) textMorph ifNotNil: [:tm | MessageTally spyOn: [ [100 timesRepeat: [(NewParagraph new) compose: tm text style: tm textStyle copy from: 1 in: tm container]] timeToRun]].
Before our changes: 162 ms After our changes: 95 ms And my Pharo 3.0 (#30417) (not up to date) : 364 ms
The main gain is avoiding - the stopConditions copy - and the TextStopConditions indirection - and of course the Multi* when not necessary (Pharo does not)
Here is the test for Pharo variant:
| text | text := Compiler evaluate: (FileSystem workingDirectory parent parent parent / 'text.st' ) readStream contentsOfEntireFile . (StringHolder new contents: text) openLabel: 'Working With Squeak 2' . ((SystemWindow allSubInstances detect: [:e | e label = 'Working With Squeak 2']) findDeepSubmorphThat: [:m | m class = PluggableTextMorph] ifAbsent: [] ) textMorph ifNotNil: [:tm | MessageTally spyOn: [ [100 timesRepeat: [(Paragraph new) compose: text style: tm textStyle copy from: 1 in: tm container]] timeToRun]].