Hi guys. After install the Athen's tutorial, I have had some error in the image:
*Segmentation fault Fri Apr 26 03:59:42 2013 * There is a problem over the image or my vm? I added the full log in the attached, On Fri, Apr 12, 2013 at 4:53 AM, Tristan Bourgois < tristan.bourg...@gmail.com> wrote: > > > > 2013/4/11 Igor Stasenko <siguc...@gmail.com> > >> On 11 April 2013 10:44, Tristan Bourgois <tristan.bourg...@gmail.com> >> wrote: >> > >> > >> > >> > 2013/4/11 Igor Stasenko <siguc...@gmail.com> >> >> >> >> On 11 April 2013 08:55, Tristan Bourgois <tristan.bourg...@gmail.com> >> >> wrote: >> >> > >> >> > >> >> > >> >> > 2013/4/10 Igor Stasenko <siguc...@gmail.com> >> >> >> >> >> >> >> >> >> >> >> >> On 10 April 2013 09:14, Tristan Bourgois < >> tristan.bourg...@gmail.com> >> >> >> wrote: >> >> >>> >> >> >>> >> >> >>> >> >> >>> >> >> >>> 2013/4/9 Igor Stasenko <siguc...@gmail.com> >> >> >>>> >> >> >>>> Yes, this is a known bug actually, which i demonstrated to >> audience >> >> >>>> during >> >> >>>> tutorial presentation.. >> >> >>>> i/cairo miss the correct font matrix setup.. and i need to see >> what's >> >> >>>> there. >> >> >>>> Cairo caching the glyphs in a strange way (so if you never drawn >> >> >>>> anything with given font before and your first drawing will use >> some >> >> >>>> rotation >> >> >>>> then everything will be rendered correctly, but if you already >> drawn >> >> >>>> anything >> >> >>>> it will render them like you shown).. >> >> >>>> I'm going to fix that issue when i come back from Lviv. >> >> >>>> >> >> >>> >> >> >>> Super :) >> >> >>> >> >> >>> Did you also see the cairo_text_path() method? It's very >> interesting >> >> >>> if >> >> >>> you want to stroke the letter! >> >> >> >> >> >> >> >> >> Yes but this is more for fancy artistic text. For rendering large >> >> >> amounts >> >> >> of text (like big lists/source code) you don't want to do that, >> >> >> because it will be too slow. >> >> >> >> >> > >> >> > Thanks for the advice I will share it to my team because they want >> >> > performance and use text_path instead of show_text. >> >> > >> >> >> >> yes, the freetype library (and i guess you using it) is highly >> >> optimized for font rendering. >> >> sure thing, cairo path rendering is fast as well, but it is not as >> >> specialized for just font rendering as freetype, >> >> therefore, i have no doubts that it will be slower. >> >> >> >> >> > >> > >> > I only use Athens to rendering the graphics framework :) And I try to >> not >> > use directly some AthensCairo object to benefit of futur new backend of >> > Athens :) and sincerely you really make a good job of the Athens >> interface! >> > It's very easy to use it! In one case I use AthensCairo object. I have >> to >> > use AthensCairoMatrix instead of AthensAffineTransform to represent the >> > transformation of a shape because I have to make an inversion of the >> matrix >> > to make a global position to the local position of the shape. >> > >> Ah, you mean this: >> >> AthensAffineTransform>>inverted >> "answer an inverse transformation of receiver" >> self notYetImplemented >> >> yes, someone has to implement it ;) >> >> > If the weather is bad at Brest this week-end I will try to implement it :) > (My last lesson of Matrix calculation is very old!) > > But actually you can just use #inverseTransform: aPoint >> >> i.e. if: >> >> pt := m transform: somePoint. >> >> then >> >> somePoint closeTo: (m inverseTransform: pt) ==> true. >> >> (close to instead of #= because of float rounding errors) >> >> >> -- >> Best regards, >> Igor Stasenko. >> >> >
pharo VM version: 3.9-7 #1 Wed Mar 13 18:22:44 CET 2013 gcc 4.4.3 Built from: NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013 With: NBCogit NativeBoost-CogPlugin-EstebanLorenzano.18 uuid: a53445f9-c0c0-4015-97a3-be7db8d9ed6b Mar 13 2013 Revision: git://gitorious.org/cogvm/blessed.git Commit: 412abef33cbed05cf1d75329e451d71c0c6aa5a7 Date: 2013-03-13 17:48:50 +0100 By: Esteban Lorenzano <esteba...@gmail.com> Jenkins build #14535 Build host: Linux linux-ubuntu-10 2.6.32-38-server #83-Ubuntu SMP Wed Jan 4 11:26:59 UTC 2012 x86_64 GNU/Linux plugin path: /home/vincent/Pharo/vm/ [default: /home/vincent/Pharo/vm/] C stack backtrace: /home/vincent/Pharo/vm/pharo[0x80a0c0c] /home/vincent/Pharo/vm/pharo[0x80a0f28] [0xf7793410] /home/vincent/Pharo/vm/pharo[0x8120215] /home/vincent/Pharo/vm/pharo[0x8091d8a] /home/vincent/Pharo/vm/pharo[0x8092300] /home/vincent/Pharo/vm/pharo[0x8092417] [0xb7136a99] /home/vincent/Pharo/vm/pharo(interpret+0x7a6)[0x8094f36] /home/vincent/Pharo/vm/pharo(main+0x2b3)[0x80a18b3] /lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xf75964d3] Smalltalk stack dump: 0xffa4237c M NBFFICallout class(NBNativeCodeGen class)>retrySend: 0xb786b7b8: a(n) NBFFICallout class 0xffa40264 I AthensCairoSurface>asForm 0xb83319c0: a(n) AthensCairoSurface 0xffa40288 I AthensViewMorph>drawOn: 0xb8304404: a(n) AthensViewMorph 0xffa402a4 M FormCanvas(Canvas)>draw: 0xb87ddb50: a(n) FormCanvas 0xffa402c0 M FormCanvas(Canvas)>drawMorph: 0xb87ddb50: a(n) FormCanvas 0xffa402e0 M [] in AthensViewMorph(Morph)>fullDrawOn: 0xb8304404: a(n) AthensViewMorph 0xffa402f8 M FormCanvas>roundCornersOf:in:during: 0xb87ddb50: a(n) FormCanvas 0xffa4031c M FormCanvas(Canvas)>roundCornersOf:during: 0xb87ddb50: a(n) FormCanvas 0xffa40340 M [] in AthensViewMorph(Morph)>fullDrawOn: 0xb8304404: a(n) AthensViewMorph 0xffa4035c M BlockClosure>on:do: 0xb87ddcac: a(n) BlockClosure 0xffa4037c M AthensViewMorph(Morph)>fullDrawOn: 0xb8304404: a(n) AthensViewMorph 0xffa3f248 M FormCanvas(Canvas)>fullDraw: 0xb87ddb50: a(n) FormCanvas 0xffa3f264 M FormCanvas(Canvas)>fullDrawMorph: 0xb87ddb50: a(n) FormCanvas 0xffa3f284 M [] in PanelMorph(Morph)>drawSubmorphsOn: 0xb8307cac: a(n) PanelMorph 0xffa3f2a4 M Array(SequenceableCollection)>reverseDo: 0xb830ebbc: a(n) Array 0xffa3f2c0 M [] in PanelMorph(Morph)>drawSubmorphsOn: 0xb8307cac: a(n) PanelMorph 0xffa3f2dc M FormCanvas>clipBy:during: 0xb87dd7dc: a(n) FormCanvas 0xffa3f300 M PanelMorph(Morph)>drawSubmorphsOn: 0xb8307cac: a(n) PanelMorph 0xffa3f320 M [] in PanelMorph(Morph)>fullDrawOn: 0xb8307cac: a(n) PanelMorph 0xffa3f338 M FormCanvas>roundCornersOf:in:during: 0xb87dd7dc: a(n) FormCanvas 0xffa3f35c M FormCanvas(Canvas)>roundCornersOf:during: 0xb87dd7dc: a(n) FormCanvas 0xffa3f380 M [] in PanelMorph(Morph)>fullDrawOn: 0xb8307cac: a(n) PanelMorph 0xffa3e24c M BlockClosure>on:do: 0xb87dd938: a(n) BlockClosure 0xffa3e26c M PanelMorph(Morph)>fullDrawOn: 0xb8307cac: a(n) PanelMorph 0xffa3e288 M FormCanvas(Canvas)>fullDraw: 0xb87dd7dc: a(n) FormCanvas 0xffa3e2a4 M FormCanvas(Canvas)>fullDrawMorph: 0xb87dd7dc: a(n) FormCanvas 0xffa3e2c4 M [] in StandardWindow(Morph)>drawSubmorphsOn: 0xb8305870: a(n) StandardWindow 0xffa3e2ec I Array(SequenceableCollection)>reverseDo: 0xb830edfc: a(n) Array 0xffa3e310 I [] in StandardWindow(Morph)>drawSubmorphsOn: 0xb8305870: a(n) StandardWindow 0xffa3e334 I FormCanvas>clipBy:during: 0xb87dd488: a(n) FormCanvas 0xffa3e360 I StandardWindow(Morph)>drawSubmorphsOn: 0xb8305870: a(n) StandardWindow 0xffa3e380 M [] in StandardWindow(Morph)>fullDrawOn: 0xb8305870: a(n) StandardWindow 0xffa3c26c M FormCanvas>roundCornersOf:in:during: 0xb87dd488: a(n) FormCanvas 0xffa3c290 M FormCanvas(Canvas)>roundCornersOf:during: 0xb87dd488: a(n) FormCanvas 0xffa3c2b4 M [] in StandardWindow(Morph)>fullDrawOn: 0xb8305870: a(n) StandardWindow 0xffa3c2d0 M BlockClosure>on:do: 0xb87dd574: a(n) BlockClosure 0xffa3c2f0 M StandardWindow(Morph)>fullDrawOn: 0xb8305870: a(n) StandardWindow 0xffa3c30c M FormCanvas(Canvas)>fullDraw: 0xb87dd488: a(n) FormCanvas 0xffa3c328 M FormCanvas(Canvas)>fullDrawMorph: 0xb87dd488: a(n) FormCanvas 0xffa3c37c M [] in WorldState>drawWorld:submorphs:invalidAreasOn: 0xb7335940: a(n) WorldState 0xffa37230 I Rectangle>allAreasOutsideList:startingAt:do: 0xb87954fc: a(n) Rectangle 0xffa3725c I Rectangle>allAreasOutsideList:do: 0xb87954fc: a(n) Rectangle 0xffa372a0 I [] in WorldState>drawWorld:submorphs:invalidAreasOn: 0xb7335940: a(n) WorldState 0xffa372c4 M Array(SequenceableCollection)>do: 0xb87ab72c: a(n) Array 0xffa372fc I WorldState>drawWorld:submorphs:invalidAreasOn: 0xb7335940: a(n) WorldState 0xffa37334 M [] in WorldState>displayWorld:submorphs: 0xb7335940: a(n) WorldState 0xffa37354 I FormCanvas>roundCornersOf:in:during: 0xb87ab624: a(n) FormCanvas 0xffa37378 M FormCanvas(Canvas)>roundCornersOf:during: 0xb87ab624: a(n) FormCanvas 0xffa3628c I WorldState>displayWorld:submorphs: 0xb7335940: a(n) WorldState 0xffa362b4 I PasteUpMorph>privateOuterDisplayWorld 0xb7325c4c: a(n) PasteUpMorph 0xffa362d4 I PasteUpMorph>displayWorld 0xb7325c4c: a(n) PasteUpMorph 0xffa362f8 I [] in WorldState>displayWorldSafely: 0xb7335940: a(n) WorldState 0xffa36314 M BlockClosure>on:do: 0xb87ab518: a(n) BlockClosure 0xffa36334 M BlockClosure>ifError: 0xb87ab518: a(n) BlockClosure 0xffa36358 I WorldState>displayWorldSafely: 0xb7335940: a(n) WorldState 0xffa3637c I WorldState>doOneCycleNowFor: 0xb7335940: a(n) WorldState 0xb83b4984 s WorldState>doOneCycleFor: 0xb83b49e0 s PasteUpMorph>doOneCycle 0xb82fa370 s [] in MorphicUIManager>spawnNewProcess 0xb82fa2bc s [] in BlockClosure>newProcess Most recent primitives replaceFrom:to:with:startingAt: class class replaceFrom:to:with:startingAt: class class replaceFrom:to:with:startingAt: class stringHash:initialHash: basicNew at:put: class class replaceFrom:to:with:startingAt: class class replaceFrom:to:with:startingAt: class class replaceFrom:to:with:startingAt: class class replaceFrom:to:with:startingAt: class class replaceFrom:to:with:startingAt: class class replaceFrom:to:with:startingAt: class class replaceFrom:to:with:startingAt: class class replaceFrom:to:with:startingAt: species basicNew: replaceFrom:to:with:startingAt: basicNew platformId basicNew at: class class class compare:with:collated: at: at: at: at: new: at:put: at:put: at:put: species basicNew: replaceFrom:to:with:startingAt: replaceFrom:to:with:startingAt: class stringHash:initialHash: class class compare:with:collated: perform: basicNew: basicNew at:put: at:put: at:put: at:put: species basicNew: replaceFrom:to:with:startingAt: species basicNew: at:put: at:put: at:put: at:put: basicNew: basicNew class class replaceFrom:to:with:startingAt: class class replaceFrom:to:with:startingAt: at:put: at:put: at:put: at:put: class class class class class class class class class class class class class class class class class class class class class at:put: species basicNew: replaceFrom:to:with:startingAt: objectAt: basicNew at: class class class compare:with:collated: at: at: at: at: class objectAt: newMethod:header: at:put: (repeat lot of times) objectAt: objectAt: objectAt:put: objectAt: objectAt:put: objectAt: objectAt:put: objectAt: objectAt:put: objectAt: objectAt:put: objectAt: objectAt: shallowCopy shallowCopy basicAt:put: objectAt: objectAt:put: at: at:put: at: at:put: at: at:put: at: at:put: objectAt: objectAt: objectAt: objectAt: objectAt: flushCache at:put: objectAt: objectAt: new: terminateTo: objectAt: objectAt: perform:withArguments: flush stack page bytes 4096 available headroom 3300 minimum unused headroom 3508 (Segmentation fault) Aborted (core dumped)