Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1 participants
- 144619 messages
[Pharo-project] How to bundle an application with icons?
by Dimitry Golubovsky
Hi,
Suppose I need to bundle a Pharo application (a package) I am
developing with some custom icons: is there any "standard"/
agreed-upon method to do that in Pharo?
For example the MenuIcons class includes byte strings (automatically I
assume) converted from some external PNG files that show up as icons
with menu items: which tool can be used to create a class with set of
icons for an arbitrary application?
If I want to reuse icons for standard actions in my application, which
is the proper way to access menu icons other than to directly access
these stored images?
Thanks.
PS Other than the "by example" books (both Squeak and Pharo) which
give some basics of building GUI for applications, are there any
general guidelines for GUI building in these systems?
--
Dimitry Golubovsky
Anywhere on the Web
Jan. 12, 2011
Re: [Pharo-project] Xtreams up to date
by mkobetic@gmail.com
"Torsten Bergmann"<astares(a)gmx.de> wrote:
> Used your Gofer script in Pharo-core 1.2 and Pharo-dev 1.1.,
> but after loading I run the tests with many errors and failures...
Hm, that is odd. Maybe I need to try a fresh load and see. I normally get a single failure in one of the socket tests which we haven't tracked down yet. Can you give me a bit more about the kind of errors and failures you see. Does it look like stuff is completely missing ? Maybe I messed up the publishing after the various class moves that I did recently.
> Is it Squeak only? (which I doubt since the loading script uses
> Gofer instead of Installer and Gofer is Pharo while Installer is
> Squeak).
I'm currently using Pharo OneClick image version 1.1.1 directly from the download page. Currently I'm running using the old VM as Cog once crashed on me and I lost a lot of changes. But both VMs seem to run the tests OK.
> Would be nice if we could have a working ConfigurationOfXtream in http://squeaksource.com/MetacelloRepository so it is easy accessible and working packages are versioned together using Metacello.
Yes, I probably need to do that as well. So far I was a bit discouraged mostly by my ignorance. I'm not up to speed on metacello yet, there don't seem to be any tools pre-loaded in the one click image, and I don't know what should one load to get some. I was able to figure out how to use ConfigurationOfFFI but in the end I ended up running the class side load method by hand. The other issue I had was that it seems a metacello configuration requires a bit of maintenance, it seems like you have to manually update the versions when you publish something new. That may be less of a problem now after the updates are done. The Gofer expression seemed a lot easier, and I hoped sufficient for now. Anyway, unless someone beats me to it I'll see what I can do about creating a configuration.
Martin
Jan. 12, 2011
Re: [Pharo-project] Issue 3525 in pharo: Compiler>>parserClass is broken and does not querying the class for providing the parser class
by pharo@googlecode.com
Updates:
Status: closed
Comment #7 on issue 3525 by stephane.ducasse: Compiler>>parserClass is
broken and does not querying the class for providing the parser class
http://code.google.com/p/pharo/issues/detail?id=3525
in 12297
Jan. 12, 2011
[Pharo-project] senders vs implementors
by Tudor Girba
Hi,
I think I encountered an error in allImplementorsOf:, but I am not quite sure and I wanted to run it by you first.
If you evaluate
(self systemNavigation allSendersOf: #browse) anyOne sourceCode.
you get the source as expected.
However, if you evaluate:
(self systemNavigation allImplementorsOf: #browse) anyOne sourceCode.
you get an error.
The last snippet used to work just fine in Pharo 1.1.1.
I consider it a bug. What do you think?
Cheers,
Doru
--
www.tudorgirba.com
"Sometimes the best solution is not the best solution."
Jan. 12, 2011
Re: [Pharo-project] Issue 3525 in pharo: Compiler>>parserClass is broken and does not querying the class for providing the parser class
by pharo@googlecode.com
Updates:
Labels: Milestone-1.2
Comment #6 on issue 3525 by siguctua: Compiler>>parserClass is broken and
does not querying the class for providing the parser class
http://code.google.com/p/pharo/issues/detail?id=3525
(No comment was entered for this change.)
Jan. 12, 2011
Re: [Pharo-project] Xtreams up to date
by Sven Van Caekenberghe
On 12 Jan 2011, at 10:44, Torsten Bergmann wrote:
> Used your Gofer script in Pharo-core 1.2 and Pharo-dev 1.1.,
> but after loading I run the tests with many errors and failures...
>
> Is it Squeak only? (which I doubt since the loading script uses
> Gofer instead of Installer and Gofer is Pharo while Installer is
> Squeak).
>
> Would be nice if we could have a working ConfigurationOfXtream in http://squeaksource.com/MetacelloRepository so it is easy accessible and working packages are versioned together using Metacello.
>
> Thx
> T.
> --
> NEU: FreePhone - kostenlos mobil telefonieren und surfen!
> Jetzt informieren: http://www.gmx.net/de/go/freephone
I see that Martin Kobetic has been doing some checkins lately, maybe you should ask him.
I would be nice if Xtreams works well on Pharo.
Sven
Jan. 12, 2011
Re: [Pharo-project] Maybe bug in ZnHttpClient
by Sven Van Caekenberghe
Hello Tony,
(I am CC'ing the Pharo list)
On 11 Jan 2011, at 23:48, Tony Fleig wrote:
> Hi Sven,
>
> At Stef's suggestion I am trying Zinc in place of WebClient in my
> automated testing of my Seaside apps.
>
> I like Zinc better already and I can see that I will need fewer lines
> of code using Zinc than WebClients for my purposes.
That is great! Thanks for trying Zn and for giving feedback.
BTW, I really liked your writeup about testing (and I was thinking/hoping all the time, he should be using Zn ;-)
> That said, I have found I think a bug.
>
> Pharo 1.1.1 Seaside 3.0.3 Zinc latest
>
> In ZnHttpClient>>#method:for:headers:data:limit, if a 302 response is
> received, the Location header field may not contain a complete URL
> (i.e. it may not contain scheme://host:port but only the path). When
> this happens, the next ZnHttpClient>>#openConnection fails in
> NetNameResolver trying to resolve a nil hostname.
>
> This occurs when the server is Seaside.
>
> I have solved this by setting followRedirect to false and handling the
> redirect myself (as I as doing with WebClient anyway.)
Well, strictly speaking it isn't a bug (the specs say that the Location URL has to be absolute), but you are right: there is common support for relative redirect locations, so I added that (did not yet test it though).
> Some other observations:
>
> 1. It is my understanding that many browsers respond to a 302/303
> response from a POST with a following GET to the address specified in
> the 302/303 Location header rather than repeating the POST with its
> payload as is done in ZnHttpClient. (See
> http://en.wikipedia.org/wiki/HTTP_303)
I'll have to study/think about that for a while, it depends on what the specs says. It doesn't make much sense for an automated client to do a GET I think. What would you suggest ?
> 2. The arguments to the settings accessors in ZnUserAgentSettings are
> all anObject. Wouldn't aBoolean and anInteger be more informative
> names (for followRedirect: and redirectLimit: for example)? I was
> stopped when I saw anObject and went perusing the sources to be sure
> that what was wanted was a boolean and not something more complex.
You're right, proper parameter names are helpful, I changed some of them.
I went over the ZnUserAgent and ZnClient classes (they were originally written by Matt Kennedy). I made various simplifications and cleanups (most related to newer API) which might help when reading the code. I also made an important change/bugfix regarding query parameters (originally reported by Cédric Béler I think).
Thanks again for the feedback, if you have any more questions, feel free to ask them.
Sven
> Sven Van Caekenberghe uploaded a new version of Zinc-HTTP to project Zinc HTTP Components:
> http://www.squeaksource.com/ZincHTTPComponents/Zinc-HTTP-SvenVanCaekenbergh…
>
> ==================== Summary ====================
>
> Name: Zinc-HTTP-SvenVanCaekenberghe.114
> Author: SvenVanCaekenberghe
> Time: 12 January 2011, 2:03:44 pm
> UUID: e1a49d00-d9f0-4800-8cd7-cb354e86d671
> Ancestors: Zinc-HTTP-SvenVanCaekenberghe.113
>
> ZnUserAgent (and ZnClient) now can follow relative redirect locations;
> introduced ZnMultiValueDictionary to allow multiple values to be stored under one key as an array;
> using ZnMultiValueDictionary for queries and headers;
> ZnUrl now uses ZnUtils>>parseQueryFrom: again;
> various simplifications and cleanups which might help when reading the code in ZnUserAgent (and ZnClient);
> ZnUserAgent (and ZnClient) now handle parameter encoding differently
Jan. 12, 2011
Re: [Pharo-project] [BUG]LargePositiveInteger(Object)>>error:
by Carla F. Griggio
Yes, it happens after save and quit! And I use Cog VM.
Great that you could reproduce, I didn't know what was causing it.
On Tue, Jan 11, 2011 at 10:36 PM, Stuart Herring <st-lists(a)stuartherring.com
> wrote:
> It seems to be related to the VM.
> To reproduce, just open a browser and save and quit.
> Then opening the image with Cog r2344 or r2345 will result in this
> error - it seems to be happening in the startup process.
> If you debug it, the code that apparently causes the problem actually
> works fine when manually invoked.
>
> Earlier versions of Cog don't have this problem - r2316 works fine.
> I'm using the standard 1.1.1 image on Linux (Omnibrowser is
> OB-Standard-lr.479)
>
> Regards,
> Stuart
>
> On Wed, Jan 12, 2011 at 3:06 AM, Pat Maddox <patmaddox(a)me.com> wrote:
> > I used the public 1.1.1 oneclick
> >
> >
> > On Jan 6, 2011, at 1:30 PM, Stéphane Ducasse wrote:
> >
> >> Thanks pat for the report.
> >>
> >> Now could you let us know if you loaded OB or if you used the public
> 1.1.1 oneclick?
> >>
> >> Stef
> >>
> >> On Jan 6, 2011, at 9:18 PM, Pat Maddox wrote:
> >>
> >>> I opened up an OmniBrowser and scrolled to the very bottom. Then I
> clicked on my package name, and then a class name.
> >>>
> >>> 6 January 2011 12:12:44 pm
> >>>
> >>> VM: Mac OS - intel - 1065 - Croquet Closure Cog VM [CoInterpreter
> VMMaker-oscog.43] Croquet Cog 3.0.0
> >>> Image: Pharo-1.1.1-- [Latest update: #11414]
> >>>
> >>> SecurityManager state:
> >>> Restricted: false
> >>> FileAccess: true
> >>> SocketAccess: true
> >>> Working Dir /Users/padillac/code/pharo_image
> >>> Trusted Dir /foobar/tooBar/forSqueak/bogus/
> >>> Untrusted Dir
> /Users/padillac/Library/Preferences/Croquet/Internet/Untrusted
> >>>
> >>> LargePositiveInteger(Object)>>error:
> >>> Receiver: 4287876447
> >>> Arguments and temporary variables:
> >>> aString: 'MessageNotUnderstood:
> LargePositiveInteger>>pixelValueForDepth:'
> >>> Receiver's instance variables:
> >>> 4287876447
> >>>
> >>> [] in WorldState>>displayWorldSafely:
> >>> Receiver: a WorldState
> >>> Arguments and temporary variables:
> >>> err: 'MessageNotUnderstood:
> LargePositiveInteger>>pixelValueForDepth:'
> >>> rcvr: 4287876447
> >>> errCtx: OBLazyListMorph>>display:atRow:on:
> >>> errMorph: an OBLazyListMorph(969408512)
> >>> Receiver's instance variables:
> >>> hands: an Array(a HandMorph(843055104))
> >>> viewBox: 0@0 corner: 2552@1374
> >>> canvas: a FormCanvas on:
> DisplayScreen(2552x1374x32)
> >>> damageRecorder: a DamageRecorder
> >>> stepList: a Heap(StepMessage(#stepAt: -> a
> SystemWindow(154664960))(a SystemWin...etc...
> >>> lastStepTime: 805471
> >>> lastStepMessage: nil
> >>> lastCycleTime: 805463
> >>> commandHistory: a CommandHistory
> >>> alarms: a Heap()
> >>> lastAlarmTime: 805471
> >>> menuBuilder: a PragmaMenuBuilder
> >>>
> >>> BlockClosure>>valueWithPossibleArgs:
> >>> Receiver: [:err :rcvr |
> >>> | errCtx errMorph |
> >>> errCtx := thisContext.
> >>> [errCtx := errCtx sender.
> >>> [err...etc...
> >>> Arguments and temporary variables:
> >>> anArray: #('MessageNotUnderstood:
> LargePositiveInteger>>pixelValueForDepth:' 42...etc...
> >>> Receiver's instance variables:
> >>> outerContext: WorldState>>displayWorldSafely:
> >>> startpc: 73
> >>> numArgs: 2
> >>>
> >>> [] in BlockClosure>>ifError:
> >>> Receiver: [aWorld displayWorld]
> >>> Arguments and temporary variables:
> >>> errorHandlerBlock: MessageNotUnderstood:
> LargePositiveInteger>>pixelValueForDep...etc...
> >>> ex: [:err :rcvr |
> >>> | errCtx errMorph |
> >>> errCtx := thisContext.
> >>> [errCtx := errCt...etc...
> >>> Receiver's instance variables:
> >>> outerContext: WorldState>>displayWorldSafely:
> >>> startpc: 66
> >>> numArgs: 0
> >>>
> >>> BlockClosure>>valueWithPossibleArgs:
> >>> Receiver: [:ex | errorHandlerBlock valueWithPossibleArgs: {ex
> description. ex receiver}]
> >>> Arguments and temporary variables:
> >>> anArray: an Array(MessageNotUnderstood:
> LargePositiveInteger>>pixelValueForDept...etc...
> >>> Receiver's instance variables:
> >>> outerContext: BlockClosure>>ifError:
> >>> startpc: 40
> >>> numArgs: 1
> >>>
> >>> [] in MethodContext(ContextPart)>>handleSignal:
> >>> Receiver: BlockClosure>>on:do:
> >>> Arguments and temporary variables:
> >>> exception: MessageNotUnderstood:
> LargePositiveInteger>>pixelValueForDepth:
> >>> Receiver's instance variables:
> >>> sender: BlockClosure>>ifError:
> >>> pc: 17
> >>> stackp: 3
> >>> method: (BlockClosure>>#on:do: "a
> CompiledMethod(280231936)")
> >>> closureOrNil: nil
> >>> receiver: [aWorld displayWorld]
> >>>
> >>> BlockClosure>>ensure:
> >>> Receiver: [(self tempAt: 2)
> >>> valueWithPossibleArgs: {exception}]
> >>> Arguments and temporary variables:
> >>> aBlock: [self tempAt: 3 put: true]
> >>> complete: nil
> >>> returnValue: nil
> >>> Receiver's instance variables:
> >>> outerContext: MethodContext(ContextPart)>>handleSignal:
> >>> startpc: 90
> >>> numArgs: 0
> >>>
> >>> MethodContext(ContextPart)>>handleSignal:
> >>> Receiver: BlockClosure>>on:do:
> >>> Arguments and temporary variables:
> >>> exception: MessageNotUnderstood:
> LargePositiveInteger>>pixelValueForDepth:
> >>> val: nil
> >>> Receiver's instance variables:
> >>> sender: BlockClosure>>ifError:
> >>> pc: 17
> >>> stackp: 3
> >>> method: (BlockClosure>>#on:do: "a
> CompiledMethod(280231936)")
> >>> closureOrNil: nil
> >>> receiver: [aWorld displayWorld]
> >>>
> >>> MessageNotUnderstood(Exception)>>signal
> >>> Receiver: MessageNotUnderstood:
> LargePositiveInteger>>pixelValueForDepth:
> >>> Arguments and temporary variables:
> >>>
> >>> Receiver's instance variables:
> >>> messageText: nil
> >>> tag: nil
> >>> signalContext: MessageNotUnderstood(Exception)>>signal
> >>> handlerContext: BlockClosure>>on:do:
> >>> outerContext: nil
> >>> message: pixelValueForDepth: 32
> >>> receiver: 4287876447
> >>> reachedDefaultHandler: false
> >>>
> >>> LargePositiveInteger(Object)>>doesNotUnderstand: #pixelValueForDepth:
> >>> Receiver: 4287876447
> >>> Arguments and temporary variables:
> >>> aMessage: pixelValueForDepth: 32
> >>> exception: MessageNotUnderstood:
> LargePositiveInteger>>pixelValueForDepth:
> >>> resumeValue: nil
> >>> Receiver's instance variables:
> >>> 4287876447
> >>>
> >>> ColorForm>>colormapIfNeededForDepth:
> >>> Receiver: ColorForm(12x12x8)
> >>> Arguments and temporary variables:
> >>> destDepth: 32
> >>> newMap: a Bitmap of length 256
> >>> i: 3
> >>> iLimiT: 256
> >>> Receiver's instance variables:
> >>> bits: #[36 29 11 7 11 10 10 11 9 11 95 10 9 9 10 11 11
> 11 11 11 11 11 10 9 0 8 ...etc...
> >>> width: 12
> >>> height: 12
> >>> depth: 8
> >>> offset: 0@0
> >>> colors: a ColorArray((Color r: 0.572 g: 0.804 b:
> 0.369) (Color r: 0.564 g: 0.76...etc...
> >>> cachedDepth: nil
> >>> cachedColormap: nil
> >>>
> >>> ColorForm>>colormapIfNeededFor:
> >>> Receiver: ColorForm(12x12x8)
> >>> Arguments and temporary variables:
> >>> destForm: DisplayScreen(2552x1374x32)
> >>> newMap: nil
> >>> color: nil
> >>> pv: nil
> >>> i: nil
> >>> iLimiT: nil
> >>> Receiver's instance variables:
> >>> bits: #[36 29 11 7 11 10 10 11 9 11 95 10 9 9 10 11 11
> 11 11 11 11 11 10 9 0 8 ...etc...
> >>> width: 12
> >>> height: 12
> >>> depth: 8
> >>> offset: 0@0
> >>> colors: a ColorArray((Color r: 0.572 g: 0.804 b:
> 0.369) (Color r: 0.564 g: 0.76...etc...
> >>> cachedDepth: nil
> >>> cachedColormap: nil
> >>>
> >>> FormCanvas>>image:at:sourceRect:rule:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> aForm: ColorForm(12x12x8)
> >>> aPoint: 0@15
> >>> sourceRect: 0@0 corner: 12@12
> >>> rule: 24
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 2367@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> FormCanvas(Canvas)>>translucentImage:at:sourceRect:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> aForm: ColorForm(12x12x8)
> >>> aPoint: 0@15
> >>> sourceRect: 0@0 corner: 12@12
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 2367@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> FormCanvas(Canvas)>>translucentImage:at:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> aForm: ColorForm(12x12x8)
> >>> aPoint: 0@15
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 2367@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> OBLazyListMorph>>display:atRow:on:
> >>> Receiver: an OBLazyListMorph(969408512)
> >>> Arguments and temporary variables:
> >>> item: #renderContentOn:
> >>> row: 2
> >>> canvas: a FormCanvas on:
> DisplayScreen(2552x1374x32)
> >>> drawBounds: 0@14 corner: 190@28
> >>> top: 15
> >>> icon: ColorForm(12x12x8)
> >>> name: #arrowUp
> >>> Receiver's instance variables:
> >>> bounds: 0@0 corner: 190@42
> >>> owner: a TransformMorph(743702528)
> >>> submorphs: #()
> >>> fullBounds: 0@0 corner: 190@42
> >>> color: Color black
> >>> extension: a MorphExtension (970981376) [other:
> (errorOnDraw -> true)]
> >>> listItems: #(#callbackUrlOn:callback:
> #renderContentOn: nil)
> >>> font: a StrikeFont(Bitmap DejaVu Sans 9 14)
> >>> selectedRow: 0
> >>> selectedRows: a PluggableSet()
> >>> listSource: an OBPluggableListMorph(155189248)
> >>> maxWidth: 136
> >>>
> >>> OBLazyListMorph(LazyListMorph)>>drawOn:
> >>> Receiver: an OBLazyListMorph(969408512)
> >>> Arguments and temporary variables:
> >>> aCanvas: a FormCanvas on:
> DisplayScreen(2552x1374x32)
> >>> row: 2
> >>> rowLimiT: 3
> >>> Receiver's instance variables:
> >>> bounds: 0@0 corner: 190@42
> >>> owner: a TransformMorph(743702528)
> >>> submorphs: #()
> >>> fullBounds: 0@0 corner: 190@42
> >>> color: Color black
> >>> extension: a MorphExtension (970981376) [other:
> (errorOnDraw -> true)]
> >>> listItems: #(#callbackUrlOn:callback:
> #renderContentOn: nil)
> >>> font: a StrikeFont(Bitmap DejaVu Sans 9 14)
> >>> selectedRow: 0
> >>> selectedRows: a PluggableSet()
> >>> listSource: an OBPluggableListMorph(155189248)
> >>> maxWidth: 136
> >>>
> >>> FormCanvas(Canvas)>>draw:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> anObject: an OBLazyListMorph(969408512)
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 2367@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> FormCanvas(Canvas)>>drawMorph:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> aMorph: an OBLazyListMorph(969408512)
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 2367@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> [] in OBLazyListMorph(Morph)>>fullDrawOn:
> >>> Receiver: an OBLazyListMorph(969408512)
> >>> Arguments and temporary variables:
> >>> aCanvas: a FormCanvas on:
> DisplayScreen(2552x1374x32)
> >>> Receiver's instance variables:
> >>> bounds: 0@0 corner: 190@42
> >>> owner: a TransformMorph(743702528)
> >>> submorphs: #()
> >>> fullBounds: 0@0 corner: 190@42
> >>> color: Color black
> >>> extension: a MorphExtension (970981376) [other:
> (errorOnDraw -> true)]
> >>> listItems: #(#callbackUrlOn:callback:
> #renderContentOn: nil)
> >>> font: a StrikeFont(Bitmap DejaVu Sans 9 14)
> >>> selectedRow: 0
> >>> selectedRows: a PluggableSet()
> >>> listSource: an OBPluggableListMorph(155189248)
> >>> maxWidth: 136
> >>>
> >>> FormCanvas>>roundCornersOf:in:during:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> aMorph: an OBLazyListMorph(969408512)
> >>> bounds: 0@0 corner: 190@42
> >>> aBlock: [(aCanvas isVisible: self bounds)
> >>> ifTrue: [aCanvas drawMorph: self].
> >>> ...etc...
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 2367@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> FormCanvas(Canvas)>>roundCornersOf:during:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> aMorph: an OBLazyListMorph(969408512)
> >>> aBlock: [(aCanvas isVisible: self bounds)
> >>> ifTrue: [aCanvas drawMorph: self].
> >>> ...etc...
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 2367@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> OBLazyListMorph(Morph)>>fullDrawOn:
> >>> Receiver: an OBLazyListMorph(969408512)
> >>> Arguments and temporary variables:
> >>> aCanvas: a FormCanvas on:
> DisplayScreen(2552x1374x32)
> >>> Receiver's instance variables:
> >>> bounds: 0@0 corner: 190@42
> >>> owner: a TransformMorph(743702528)
> >>> submorphs: #()
> >>> fullBounds: 0@0 corner: 190@42
> >>> color: Color black
> >>> extension: a MorphExtension (970981376) [other:
> (errorOnDraw -> true)]
> >>> listItems: #(#callbackUrlOn:callback:
> #renderContentOn: nil)
> >>> font: a StrikeFont(Bitmap DejaVu Sans 9 14)
> >>> selectedRow: 0
> >>> selectedRows: a PluggableSet()
> >>> listSource: an OBPluggableListMorph(155189248)
> >>> maxWidth: 136
> >>>
> >>> FormCanvas(Canvas)>>fullDraw:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> anObject: an OBLazyListMorph(969408512)
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 2367@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> FormCanvas(Canvas)>>fullDrawMorph:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> aMorph: an OBLazyListMorph(969408512)
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 2367@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> [] in [] in TransformMorph>>drawSubmorphsOn:
> >>> Receiver: a TransformMorph(743702528)
> >>> Arguments and temporary variables:
> >>> myCanvas: an OBLazyListMorph(969408512)
> >>> m: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Receiver's instance variables:
> >>> bounds: 520@0 corner: 690@213
> >>> owner: an OBPluggableListMorph(155189248)
> >>> submorphs: an Array(an OBLazyListMorph(969408512))
> >>> fullBounds: 520@0 corner: 690@213
> >>> color: Color transparent
> >>> extension: a MorphExtension (745537536)
> >>> transform: a MorphicTransform(angle = 0.0; scale =
> 1.0; offset = -523@0)
> >>> smoothing: 1
> >>> localBounds: nil
> >>>
> >>> Array(SequenceableCollection)>>reverseDo:
> >>> Receiver: an Array(an OBLazyListMorph(969408512))
> >>> Arguments and temporary variables:
> >>> aBlock: [:m | myCanvas fullDrawMorph: m]
> >>> index: 1
> >>> Receiver's instance variables:
> >>> an Array(an OBLazyListMorph(969408512))
> >>>
> >>> [] in TransformMorph>>drawSubmorphsOn:
> >>> Receiver: a TransformMorph(743702528)
> >>> Arguments and temporary variables:
> >>> myCanvas: a FormCanvas on:
> DisplayScreen(2552x1374x32)
> >>> Receiver's instance variables:
> >>> bounds: 520@0 corner: 690@213
> >>> owner: an OBPluggableListMorph(155189248)
> >>> submorphs: an Array(an OBLazyListMorph(969408512))
> >>> fullBounds: 520@0 corner: 690@213
> >>> color: Color transparent
> >>> extension: a MorphExtension (745537536)
> >>> transform: a MorphicTransform(angle = 0.0; scale =
> 1.0; offset = -523@0)
> >>> smoothing: 1
> >>> localBounds: nil
> >>>
> >>> FormCanvas>>transformBy:clippingTo:during:smoothing:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> aDisplayTransform: a MorphicTransform(angle = 0.0;
> scale = 1.0; offset = -523@0...etc...
> >>> aClipRect: 520@0 corner: 690@213
> >>> aBlock: [:myCanvas | (self angle ~= 0.0
> >>> or: [self scale ~= 1.0])
> >>> ifTrue: [...etc...
> >>> cellSize: 1
> >>> innerRect: nil
> >>> patchRect: nil
> >>> sourceQuad: nil
> >>> warp: nil
> >>> start: nil
> >>> subCanvas: nil
> >>> rule: nil
> >>> i: nil
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 1844@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> TransformMorph>>drawSubmorphsOn:
> >>> Receiver: a TransformMorph(743702528)
> >>> Arguments and temporary variables:
> >>> aCanvas: a FormCanvas on:
> DisplayScreen(2552x1374x32)
> >>> Receiver's instance variables:
> >>> bounds: 520@0 corner: 690@213
> >>> owner: an OBPluggableListMorph(155189248)
> >>> submorphs: an Array(an OBLazyListMorph(969408512))
> >>> fullBounds: 520@0 corner: 690@213
> >>> color: Color transparent
> >>> extension: a MorphExtension (745537536)
> >>> transform: a MorphicTransform(angle = 0.0; scale =
> 1.0; offset = -523@0)
> >>> smoothing: 1
> >>> localBounds: nil
> >>>
> >>> [] in TransformMorph(Morph)>>fullDrawOn:
> >>> Receiver: a TransformMorph(743702528)
> >>> Arguments and temporary variables:
> >>> aCanvas: a FormCanvas on:
> DisplayScreen(2552x1374x32)
> >>> Receiver's instance variables:
> >>> bounds: 520@0 corner: 690@213
> >>> owner: an OBPluggableListMorph(155189248)
> >>> submorphs: an Array(an OBLazyListMorph(969408512))
> >>> fullBounds: 520@0 corner: 690@213
> >>> color: Color transparent
> >>> extension: a MorphExtension (745537536)
> >>> transform: a MorphicTransform(angle = 0.0; scale =
> 1.0; offset = -523@0)
> >>> smoothing: 1
> >>> localBounds: nil
> >>>
> >>> FormCanvas>>roundCornersOf:in:during:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> aMorph: a TransformMorph(743702528)
> >>> bounds: 520@0 corner: 690@213
> >>> aBlock: [(aCanvas isVisible: self bounds)
> >>> ifTrue: [aCanvas drawMorph: self].
> >>> ...etc...
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 1844@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> FormCanvas(Canvas)>>roundCornersOf:during:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> aMorph: a TransformMorph(743702528)
> >>> aBlock: [(aCanvas isVisible: self bounds)
> >>> ifTrue: [aCanvas drawMorph: self].
> >>> ...etc...
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 1844@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> TransformMorph(Morph)>>fullDrawOn:
> >>> Receiver: a TransformMorph(743702528)
> >>> Arguments and temporary variables:
> >>> aCanvas: a FormCanvas on:
> DisplayScreen(2552x1374x32)
> >>> Receiver's instance variables:
> >>> bounds: 520@0 corner: 690@213
> >>> owner: an OBPluggableListMorph(155189248)
> >>> submorphs: an Array(an OBLazyListMorph(969408512))
> >>> fullBounds: 520@0 corner: 690@213
> >>> color: Color transparent
> >>> extension: a MorphExtension (745537536)
> >>> transform: a MorphicTransform(angle = 0.0; scale =
> 1.0; offset = -523@0)
> >>> smoothing: 1
> >>> localBounds: nil
> >>>
> >>> FormCanvas(Canvas)>>fullDraw:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> anObject: a TransformMorph(743702528)
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 1844@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> FormCanvas(Canvas)>>fullDrawMorph:
> >>> Receiver: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Arguments and temporary variables:
> >>> aMorph: a TransformMorph(743702528)
> >>> Receiver's instance variables:
> >>> target: nil
> >>> filterSelector: nil
> >>> origin: 1844@187
> >>> clipRect: 2364@187 corner: 2534@400
> >>> form: DisplayScreen(2552x1374x32)
> >>> port: a GrafPort
> >>> shadowColor: nil
> >>>
> >>> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
> >>> Receiver: an OBPluggableListMorph(155189248)
> >>> Arguments and temporary variables:
> >>> canvas: a TransformMorph(743702528)
> >>> m: a FormCanvas on: DisplayScreen(2552x1374x32)
> >>> Receiver's instance variables:
> >>> bounds: 520@0 corner: 690@213
> >>> owner: an OBPane(127401984)
> >>> submorphs: an Array(a TransformMorph(743702528))
> >>> fullBounds: 520@0 corner: 690@213
> >>> color: Color white
> >>> extension: a MorphExtension (132644864) [other:
> (dragEnabled -> true) (dropEna...etc...
> >>> borderWidth: 0
> >>> borderColor: Color black
> >>> model: an OBColumn()
> >>> slotName: nil
> >>> open: false
> >>> scrollBar: a ScrollBar(161742848)
> >>> scroller: a TransformMorph(743702528)
> >>> retractableScrollBar: false
> >>> scrollBarOnLeft: false
> >>> getMenuSelector: #menu:
> >>> getMenuTitleSelector: nil
> >>> hasFocus: false
> >>> hScrollBar: a ScrollBar(990642176)
> >>> list: nil
> >>> getListSelector: #list
> >>> getListSizeSelector: #listSize
> >>> getListElementSelector: #listAt:
> >>> getIndexSelector: #selection
> >>> setIndexSelector: #selection:
> >>> keystrokeActionSelector: #keystroke:from:
> >>> autoDeselect: false
> >>> lastKeystrokeTime: 0
> >>> lastKeystrokes: ''
> >>> doubleClickSelector: #doubleClick
> >>> handlesBasicKeys: nil
> >>> potentialDropRow: nil
> >>> listMorph: an OBLazyListMorph(969408512)
> >>> hScrollRangeCache: nil
> >>>
> >>> Array(SequenceableCollection)>>reverseDo:
> >>> Receiver: an Array(a TransformMorph(743702528))
> >>> Arguments and temporary variables:
> >>> aBlock: [:m | canvas fullDrawMorph: m]
> >>> index: 1
> >>> Receiver's instance variables:
> >>> an Array(a TransformMorph(743702528))
> >>>
> >>> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
> >>> Receiver: an OBPluggableListMorph(155189248)
> >>> Arguments and temporary variables:
> >>> canvas: a FormCanvas on:
> DisplayScreen(2552x1374x32)
> >>> Receiver's instance variables:
> >>> bounds: 520@0 corner: 690@213
> >>> owner: an OBPane(127401984)
> >>> submorphs: an Array(a TransformMorph(743702528))
> >>> fullBounds: 520@0 corner: 690@213
> >>> color: Color white
> >>> extension: a MorphExtension (132644864) [other:
> (dragEnabled -> true) (dropEna...etc...
> >>> borderWidth: 0
> >>> borderColor: Color black
> >>> model: an OBColumn()
> >>> slotName: nil
> >>> open: false
> >>> scrollBar: a ScrollBar(161742848)
> >>> scroller: a TransformMorph(743702528)
> >>> retractableScrollBar: false
> >>> scrollBarOnLeft: false
> >>> getMenuSelector: #menu:
> >>> getMenuTitleSelector: nil
> >>> hasFocus: false
> >>> hScrollBar: a ScrollBar(990642176)
> >>> list: nil
> >>> getListSelector: #list
> >>> getListSizeSelector: #listSize
> >>> getListElementSelector: #listAt:
> >>> getIndexSelector: #selection
> >>> setIndexSelector: #selection:
> >>> keystrokeActionSelector: #keystroke:from:
> >>> autoDeselect: false
> >>> lastKeystrokeTime: 0
> >>> lastKeystrokes: ''
> >>> doubleClickSelector: #doubleClick
> >>> handlesBasicKeys: nil
> >>> potentialDropRow: nil
> >>> listMorph: an OBLazyListMorph(969408512)
> >>> hScrollRangeCache: nil
> >>>
> >>>
> >>> --- The full stack ---
> >>> LargePositiveInteger(Object)>>error:
> >>> [] in WorldState>>displayWorldSafely:
> >>> BlockClosure>>valueWithPossibleArgs:
> >>> [] in BlockClosure>>ifError:
> >>> BlockClosure>>valueWithPossibleArgs:
> >>> [] in MethodContext(ContextPart)>>handleSignal:
> >>> BlockClosure>>ensure:
> >>> MethodContext(ContextPart)>>handleSignal:
> >>> MessageNotUnderstood(Exception)>>signal
> >>> LargePositiveInteger(Object)>>doesNotUnderstand: #pixelValueForDepth:
> >>> ColorForm>>colormapIfNeededForDepth:
> >>> ColorForm>>colormapIfNeededFor:
> >>> FormCanvas>>image:at:sourceRect:rule:
> >>> FormCanvas(Canvas)>>translucentImage:at:sourceRect:
> >>> FormCanvas(Canvas)>>translucentImage:at:
> >>> OBLazyListMorph>>display:atRow:on:
> >>> OBLazyListMorph(LazyListMorph)>>drawOn:
> >>> FormCanvas(Canvas)>>draw:
> >>> FormCanvas(Canvas)>>drawMorph:
> >>> [] in OBLazyListMorph(Morph)>>fullDrawOn:
> >>> FormCanvas>>roundCornersOf:in:during:
> >>> FormCanvas(Canvas)>>roundCornersOf:during:
> >>> OBLazyListMorph(Morph)>>fullDrawOn:
> >>> FormCanvas(Canvas)>>fullDraw:
> >>> FormCanvas(Canvas)>>fullDrawMorph:
> >>> [] in [] in TransformMorph>>drawSubmorphsOn:
> >>> Array(SequenceableCollection)>>reverseDo:
> >>> [] in TransformMorph>>drawSubmorphsOn:
> >>> FormCanvas>>transformBy:clippingTo:during:smoothing:
> >>> TransformMorph>>drawSubmorphsOn:
> >>> [] in TransformMorph(Morph)>>fullDrawOn:
> >>> FormCanvas>>roundCornersOf:in:during:
> >>> FormCanvas(Canvas)>>roundCornersOf:during:
> >>> TransformMorph(Morph)>>fullDrawOn:
> >>> FormCanvas(Canvas)>>fullDraw:
> >>> FormCanvas(Canvas)>>fullDrawMorph:
> >>> [] in [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
> >>> Array(SequenceableCollection)>>reverseDo:
> >>> [] in OBPluggableListMorph(Morph)>>drawSubmorphsOn:
> >>> - - - - - - - - - - - - - - -
> >>> - - - - - - - - - - - - - - - - - -
> >>> OBPluggableListMorph(Morph)>>drawSubmorphsOn:
> >>> OBPluggableListMorph(PluggableListMorph)>>drawSubmorphsOn:
> >>> [] in OBPluggableListMorph(Morph)>>fullDrawOn:
> >>> FormCanvas>>roundCornersOf:in:during:
> >>> FormCanvas(Canvas)>>roundCornersOf:during:
> >>> OBPluggableListMorph(Morph)>>fullDrawOn:
> >>> FormCanvas(Canvas)>>fullDraw:
> >>> FormCanvas(Canvas)>>fullDrawMorph:
> >>> [] in [] in OBPane(Morph)>>drawSubmorphsOn:
> >>> Array(SequenceableCollection)>>reverseDo:
> >>> [] in OBPane(Morph)>>drawSubmorphsOn:
> >>> FormCanvas>>clipBy:during:
> >>> OBPane(Morph)>>drawSubmorphsOn:
> >>> [] in OBPane(Morph)>>fullDrawOn:
> >>> FormCanvas>>roundCornersOf:in:during:
> >>> FormCanvas(Canvas)>>roundCornersOf:during:
> >>> OBPane(Morph)>>fullDrawOn:
> >>> FormCanvas(Canvas)>>fullDraw:
> >>> FormCanvas(Canvas)>>fullDrawMorph:
> >>> [] in [] in TransformMorph>>drawSubmorphsOn:
> >>> Array(SequenceableCollection)>>reverseDo:
> >>> [] in TransformMorph>>drawSubmorphsOn:
> >>> FormCanvas>>transformBy:clippingTo:during:smoothing:
> >>> TransformMorph>>drawSubmorphsOn:
> >>> [] in TransformMorph(Morph)>>fullDrawOn:
> >>> FormCanvas>>roundCornersOf:in:during:
> >>> FormCanvas(Canvas)>>roundCornersOf:during:
> >>> TransformMorph(Morph)>>fullDrawOn:
> >>> FormCanvas(Canvas)>>fullDraw:
> >>> FormCanvas(Canvas)>>fullDrawMorph:
> >>> [] in [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
> >>> Array(SequenceableCollection)>>reverseDo:
> >>> [] in OBPaneScroller(Morph)>>drawSubmorphsOn:
> >>> OBPaneScroller(Morph)>>drawSubmorphsOn:
> >>> [] in OBPaneScroller(Morph)>>fullDrawOn:
> >>> FormCanvas>>roundCornersOf:in:during:
> >>> FormCanvas(Canvas)>>roundCornersOf:during:
> >>> OBPaneScroller(Morph)>>fullDrawOn:
> >>> FormCanvas(Canvas)>>fullDraw:
> >>> FormCanvas(Canvas)>>fullDrawMorph:
> >>> [] in [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
> >>> Array(SequenceableCollection)>>reverseDo:
> >>> [] in OBGroupingMorph(Morph)>>drawSubmorphsOn:
> >>> OBGroupingMorph(Morph)>>drawSubmorphsOn:
> >>> [] in OBGroupingMorph(Morph)>>fullDrawOn:
> >>> FormCanvas>>roundCornersOf:in:during:
> >>> FormCanvas(Canvas)>>roundCornersOf:during:
> >>> OBGroupingMorph(Morph)>>fullDrawOn:
> >>> FormCanvas(Canvas)>>fullDraw:
> >>> FormCanvas(Canvas)>>fullDrawMorph:
> >>> [] in [] in SystemWindow(Morph)>>drawSubmorphsOn:
> >>> Array(SequenceableCollection)>>reverseDo:
> >>> [] in SystemWindow(Morph)>>drawSubmorphsOn:
> >>> FormCanvas>>clipBy:during:
> >>> SystemWindow(Morph)>>drawSubmorphsOn:
> >>> [] in SystemWindow(Morph)>>fullDrawOn:
> >>> FormCanvas>>roundCornersOf:in:during:
> >>> FormCanvas(Canvas)>>roundCornersOf:during:
> >>> SystemWindow(Morph)>>fullDrawOn:
> >>> FormCanvas(Canvas)>>fullDraw:
> >>> FormCanvas(Canvas)>>fullDrawMorph:
> >>> [] in [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
> >>> Rectangle>>allAreasOutsideList:startingAt:do:
> >>> Rectangle>>allAreasOutsideList:do:
> >>> [] in WorldState>>drawWorld:submorphs:invalidAreasOn:
> >>> Array(SequenceableCollection)>>do:
> >>> WorldState>>drawWorld:submorphs:invalidAreasOn:
> >>> [] in WorldState>>displayWorld:submorphs:
> >>> FormCanvas>>roundCornersOf:in:during:
> >>> FormCanvas(Canvas)>>roundCornersOf:during:
> >>> WorldState>>displayWorld:submorphs:
> >>> PasteUpMorph>>privateOuterDisplayWorld
> >>> PasteUpMorph>>displayWorld
> >>> [] in WorldState>>displayWorldSafely:
> >>> BlockClosure>>on:do:
> >>> BlockClosure>>ifError:
> >>> WorldState>>displayWorldSafely:
> >>> WorldState>>doOneCycleNowFor:
> >>> WorldState>>doOneCycleFor:
> >>> PasteUpMorph>>doOneCycle
> >>> [] in Project class>>spawnNewProcess
> >>> [] in BlockClosure>>newProcess
> >>>
> >>
> >>
> >
> >
> >
>
>
Jan. 12, 2011
Re: [Pharo-project] SqueakSSL Plugin for Mac OS X
by Igor Stasenko
It would be good to have it integrated into build system we are doing right now.
Esteban, currently working on making sure that most plugins can be
built and work with Cog VM.
On 9 January 2011 18:58, Sven Van Caekenberghe <sven(a)beta9.be> wrote:
>
> On 04 Jan 2011, at 18:16, Sven Van Caekenberghe wrote:
>
>> Hi,
>>
>> Has anyone got the Squeak SSL plugin [1] to work on Mac OS X, more specifically for the Cog VM family, Pharo 1.1.1 or later and Mac OS X 10.6.5 ? If not, is there some how to guide on building plugins ?
>>
>> TIA,
>>
>> Sven
>>
>> [1] http://www.squeaksource.com/SqueakSSL
>
> I have found the Google project website for the plugin:
>
> Â Â Â Â http://code.google.com/p/squeakssl/
>
> where binary versions of the plugin can be downloaded for Windows, Mac and Linux.
>
> I got this to work in a Cog VM on Mac OS X, however not without at least one problem:
>
> SqueakSSL>>#certState always returns -1 on Mac OS X simply because this is hardcoded in sqMacSSL.c:
>
> 248: Â Â /* We are connected. Verify the cert. */
> 249: Â Â ssl->state = SQSSL_CONNECTED;
> 250: Â Â ssl->certFlags = -1;
>
> While on Linux, in in sqUnixOpenSSL.c:
>
> 292: Â Â Â /* Check the result of verification */
> 293: Â Â Â result = SSL_get_verify_result(ssl->ssl);
> 294: Â Â Â if(ssl->loglevel) printf("sqAcceptSSL: SSL_get_verify_result = %d\n", result);
> 295: Â Â Â /* FIXME: Figure out the actual failure reason */
> 296: Â Â Â ssl->certFlags = result ? SQSSL_OTHER_ISSUE : SQSSL_OK;
>
> Still not a full implementation, but better (and others report SqueakSSL is working on Linux).
> The OpenSSL calls used on Linux seem to exist identically on Mac OS X.
> (BTW, there are two instances of this code in the C file.)
>
> Changing the example code in SqueakSSL class>>google: to skip the certState check:
>
> Â Â Â Â "Verify that the cert is valid"
> Â Â Â Â ssl certState = 0 ifFalse:[
> Â Â Â Â Â Â Â Â self error: 'The certificate is invalid (code: ', ssl certState,')'.
> Â Â Â Â ].
>
> Results in a working example.
>
> If I only knew how to recompile the plugin I could try to build a better one, I have however never done this (nor built a VM).
>
> Is there anybody else interested in helping out ?
>
> Sven
>
>
>
>
>
>
>
--
Best regards,
Igor Stasenko AKA sig.
Jan. 12, 2011
Re: [Pharo-project] Issue 3486 in pharo: PluggableTextMorph should be able to support text styling
by pharo@googlecode.com
Comment #16 on issue 3486 by Benjamin.VanRyseghem.Pharo: PluggableTextMorph
should be able to support text styling
http://code.google.com/p/pharo/issues/detail?id=3486
I do not understand
Jan. 12, 2011