Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- 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
January 2009
- 49 participants
- 597 messages
Re: [Pharo-project] Pharo Issues
by Adrian Lienhard
On Jan 5, 2009, at 22:11 , Stéphane Ducasse wrote:
> Adrian
>
> I just commited a new script280 (which remove the Sixx-
> stephane_ducasse.2.mcz)
> I'm wondering why we have a sixx package in pharo-core.
wasn't this what you and Marcus recently discussed in the thread with
title "there is a sixx left over in Object"
Adrian
> To me this is
> at the minimum a dev dependency
> I will retry to load scriptloader711 and rollback if necessary
>
>
>
>
> On Jan 5, 2009, at 9:56 PM, Adrian Lienhard wrote:
>
>> Hi Brian,
>>
>> I checked and it worked for me. It looks like a network issue or
>> SqueakSource not replying for a second. Could you try again and
>> report
>> back if the problem persists for you? I also suggest to delete the
>> package-cache folder.
>>
>> Cheers,
>> Adrian
>>
>> On Jan 5, 2009, at 21:45 , Brian Brown wrote:
>>
>>> Greetings all,
>>>
>>> I download the latest image from the site (10196 dev), and selected
>>> "Software update" from the System Menu. There is an error with
>>> update:
>>>
>>> 10201-Pha-FlapTabViewerObjectPassOneOverScriptSyst
>>>
>>> While it is in the "Adding Versions" step, we get an exception
>>> trying
>>> to read a stream on this file: Sixx-stephane_ducasse.2.mcz
>>>
>>>
>>> Here is the traceback:
>>>
>>> UndefinedObject(Object)>>doesNotUnderstand: #readStream
>>> MCScanner class>>scanTokens:
>>> MCMczReader>>parseMember:
>>> MCMczReader>>loadPackage
>>> MCMczReader(MCVersionReader)>>package
>>> MCMczReader(MCVersionReader)>>basicVersion
>>> MCMczReader(MCVersionReader)>>version
>>> [] in
>>> MCHttpRepository(MCFileBasedRepository)>>loadVersionFromFileNamed:
>>> {[:r | r version]}
>>> BlockContext>>valueWithPossibleArgs:
>>> MCMczReader(ProtoObject)>>ifNotNil:
>>> MCHttpRepository>>versionReaderForFileNamed:do:
>>> MCHttpRepository(MCFileBasedRepository)>>loadVersionFromFileNamed:
>>> [] in ScriptLoader>>loadTogether:merge: {[:fn | loader addVersion:
>>> (self repository loadVersionFromFileNamed: fn)]}
>>> [] in
>>> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
>>> {[:each :i | bar value: i. aBlock value: each]}
>>> OrderedCollection(SequenceableCollection)>>withIndexDo:
>>> [] in
>>> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
>>> {[:bar | self withIndexDo: [:each :i | bar value: i. aBlock
>>> value: e...]}
>>> [] in ProgressInitiationException>>defaultAction {[result :=
>>> workBlock
>>> value: progress]}
>>> BlockContext>>ensure:
>>> ProgressInitiationException>>defaultAction
>>> UndefinedObject>>handleSignal:
>>> MethodContext(ContextPart)>>handleSignal:
>>> MethodContext(ContextPart)>>handleSignal:
>>> ProgressInitiationException(Exception)>>signal
>>> ProgressInitiationException>>display:at:from:to:during:
>>> ProgressInitiationException class>>display:at:from:to:during:
>>> ByteString(String)>>displayProgressAt:from:to:during:
>>> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
>>> ScriptLoader>>loadTogether:merge:
>>> ScriptLoader>>script280
>>> ScriptLoader>>update10201
>>> UndefinedObject>>DoIt
>>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>>> Compiler class>>evaluate:for:notifying:logged:
>>> Compiler class>>evaluate:for:logged:
>>> Compiler class>>evaluate:logged:
>>> [] in
>>> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
>>> {[val := (self peekFor: $!) ifTrue: [(Compiler evaluate: self
>>> nextChunk l...]}
>>> BlockContext>>on:do:
>>> [] in
>>> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
>>> {[:bar | [self atEnd] whileFalse: [bar value: self position.
>>> self skipS...]}
>>> [] in ProgressInitiationException>>defaultAction {[result :=
>>> workBlock
>>> value: progress]}
>>> BlockContext>>ensure:
>>> ProgressInitiationException>>defaultAction
>>> UndefinedObject>>handleSignal:
>>> MethodContext(ContextPart)>>handleSignal:
>>> ProgressInitiationException(Exception)>>signal
>>> ProgressInitiationException>>display:at:from:to:during:
>>> ProgressInitiationException class>>display:at:from:to:during:
>>> ByteString(String)>>displayProgressAt:from:to:during:
>>> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
>>> [] in ChangeSet class>>newChangesFromStream:named: {[newSet
>>> ifNotNil: [(aStream respondsTo: #converter:) ifTrue:
>>> [newStrea...]}
>>> BlockContext>>ensure:
>>> ChangeSet class>>newChangesFromStream:named:
>>> [] in Utilities
>>> class>>readServer:special:updatesThrough:saveLocally:updateImage:
>>> {[:bar | [this := docQueue next. nextDoc := docQueue next.
>>> nextDoc
>>> = #fail...]}
>>> [] in ProgressInitiationException>>defaultAction {[result :=
>>> workBlock
>>> value: progress]}
>>> BlockContext>>ensure:
>>> ProgressInitiationException>>defaultAction
>>> UndefinedObject>>handleSignal:
>>> MethodContext(ContextPart)>>handleSignal:
>>> ProgressInitiationException(Exception)>>signal
>>> ProgressInitiationException>>display:at:from:to:during:
>>> ProgressInitiationException class>>display:at:from:to:during:
>>> ByteString(String)>>displayProgressAt:from:to:during:
>>> [] in Utilities
>>> class>>readServer:special:updatesThrough:saveLocally:updateImage:
>>> {[urls := self newUpdatesOn: (serverList collect: [:url |
>>> url , 'up...]}
>>> BlockContext>>ensure:
>>> CursorWithMask(Cursor)>>showWhile:
>>> Utilities
>>> class>>readServer:special:updatesThrough:saveLocally:updateImage:
>>> Utilities class>>readServerUpdatesThrough:saveLocally:updateImage:
>>> Utilities class>>readServerUpdatesSaveLocally:updateImage:
>>> Utilities class>>updateFromServer
>>> TheWorldMenu>>doMenuItem:with:
>>> [] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>>> {[(selArgCount := selector numArgs) = 0 ifTrue: [target perform:
>>> selector] ...]}
>>> BlockContext>>ensure:
>>> CursorWithMask(Cursor)>>showWhile:
>>> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>>> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
>>> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
>>> MouseButtonEvent>>sentTo:
>>> ToggleMenuItemMorph(Morph)>>handleEvent:
>>> MorphicEventDispatcher>>dispatchDefault:with:
>>> MorphicEventDispatcher>>dispatchEvent:with:
>>> ToggleMenuItemMorph(Morph)>>processEvent:using:
>>> MorphicEventDispatcher>>dispatchDefault:with:
>>> MorphicEventDispatcher>>dispatchEvent:with:
>>> MenuMorph(Morph)>>processEvent:using:
>>> MenuMorph(Morph)>>processEvent:
>>> MenuMorph>>handleFocusEvent:
>>> [] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.
>>> ActiveEvent := anEvent. result := focusHolder han...]}
>>> [] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
>>> BlockContext>>on:do:
>>> PasteUpMorph>>becomeActiveDuring:
>>> HandMorph>>sendFocusEvent:to:clear:
>>> HandMorph>>sendEvent:focus:clear:
>>> HandMorph>>sendMouseEvent:
>>> HandMorph>>handleEvent:
>>> HandMorph>>processEvents
>>> [] in WorldState>>doOneCycleNowFor: {[:h | ActiveHand := h. h
>>> processEvents. ActiveHand := nil]}
>>> Array(SequenceableCollection)>>do:
>>> WorldState>>handsDo:
>>> WorldState>>doOneCycleNowFor:
>>> WorldState>>doOneCycleFor:
>>> PasteUpMorph>>doOneCycle
>>> [] in Project class>>spawnNewProcess {[[World doOneCycle. Processor
>>> yield. false] whileFalse. nil]}
>>> [] in BlockContext>>newProcess {[self value. Processor
>>> terminateActive]}
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project(a)lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Jan. 5, 2009
[Pharo-project] Issue 434: New MC merge dialog merges even if it is closed without hitting "merge"
by Adrian Lienhard
The new merge dialog is really nice. I filed the following issue.
http://code.google.com/p/pharo/issues/detail?id=434
After closing the dialog with the top left red button, the merge is
performed.
Furthermore, the dialog is modal, which I think is quite annoying as I
often use to have several merge dialogs open at the same time.
Improvements are welcome :)
Cheers,
Adrian
___________________
http://www.adrian-lienhard.ch/
Jan. 5, 2009
Re: [Pharo-project] Pharo Issues
by Stéphane Ducasse
I rolledback to the old version since it loaded for me when updating
from 10191 (too long we should publish an image soon)
Brian could you retry and let us know. I would be sure that the update
works also with a dev image.
Thanks
On Jan 5, 2009, at 10:11 PM, Stéphane Ducasse wrote:
> Adrian
>
> I just commited a new script280 (which remove the Sixx-
> stephane_ducasse.2.mcz)
> I'm wondering why we have a sixx package in pharo-core. To me this is
> at the minimum a dev dependency
> I will retry to load scriptloader711 and rollback if necessary
>
>
>
>
> On Jan 5, 2009, at 9:56 PM, Adrian Lienhard wrote:
>
>> Hi Brian,
>>
>> I checked and it worked for me. It looks like a network issue or
>> SqueakSource not replying for a second. Could you try again and
>> report
>> back if the problem persists for you? I also suggest to delete the
>> package-cache folder.
>>
>> Cheers,
>> Adrian
>>
>> On Jan 5, 2009, at 21:45 , Brian Brown wrote:
>>
>>> Greetings all,
>>>
>>> I download the latest image from the site (10196 dev), and selected
>>> "Software update" from the System Menu. There is an error with
>>> update:
>>>
>>> 10201-Pha-FlapTabViewerObjectPassOneOverScriptSyst
>>>
>>> While it is in the "Adding Versions" step, we get an exception
>>> trying
>>> to read a stream on this file: Sixx-stephane_ducasse.2.mcz
>>>
>>>
>>> Here is the traceback:
>>>
>>> UndefinedObject(Object)>>doesNotUnderstand: #readStream
>>> MCScanner class>>scanTokens:
>>> MCMczReader>>parseMember:
>>> MCMczReader>>loadPackage
>>> MCMczReader(MCVersionReader)>>package
>>> MCMczReader(MCVersionReader)>>basicVersion
>>> MCMczReader(MCVersionReader)>>version
>>> [] in
>>> MCHttpRepository(MCFileBasedRepository)>>loadVersionFromFileNamed:
>>> {[:r | r version]}
>>> BlockContext>>valueWithPossibleArgs:
>>> MCMczReader(ProtoObject)>>ifNotNil:
>>> MCHttpRepository>>versionReaderForFileNamed:do:
>>> MCHttpRepository(MCFileBasedRepository)>>loadVersionFromFileNamed:
>>> [] in ScriptLoader>>loadTogether:merge: {[:fn | loader addVersion:
>>> (self repository loadVersionFromFileNamed: fn)]}
>>> [] in
>>> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
>>> {[:each :i | bar value: i. aBlock value: each]}
>>> OrderedCollection(SequenceableCollection)>>withIndexDo:
>>> [] in
>>> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
>>> {[:bar | self withIndexDo: [:each :i | bar value: i. aBlock
>>> value: e...]}
>>> [] in ProgressInitiationException>>defaultAction {[result :=
>>> workBlock
>>> value: progress]}
>>> BlockContext>>ensure:
>>> ProgressInitiationException>>defaultAction
>>> UndefinedObject>>handleSignal:
>>> MethodContext(ContextPart)>>handleSignal:
>>> MethodContext(ContextPart)>>handleSignal:
>>> ProgressInitiationException(Exception)>>signal
>>> ProgressInitiationException>>display:at:from:to:during:
>>> ProgressInitiationException class>>display:at:from:to:during:
>>> ByteString(String)>>displayProgressAt:from:to:during:
>>> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
>>> ScriptLoader>>loadTogether:merge:
>>> ScriptLoader>>script280
>>> ScriptLoader>>update10201
>>> UndefinedObject>>DoIt
>>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>>> Compiler class>>evaluate:for:notifying:logged:
>>> Compiler class>>evaluate:for:logged:
>>> Compiler class>>evaluate:logged:
>>> [] in
>>> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
>>> {[val := (self peekFor: $!) ifTrue: [(Compiler evaluate: self
>>> nextChunk l...]}
>>> BlockContext>>on:do:
>>> [] in
>>> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
>>> {[:bar | [self atEnd] whileFalse: [bar value: self position.
>>> self skipS...]}
>>> [] in ProgressInitiationException>>defaultAction {[result :=
>>> workBlock
>>> value: progress]}
>>> BlockContext>>ensure:
>>> ProgressInitiationException>>defaultAction
>>> UndefinedObject>>handleSignal:
>>> MethodContext(ContextPart)>>handleSignal:
>>> ProgressInitiationException(Exception)>>signal
>>> ProgressInitiationException>>display:at:from:to:during:
>>> ProgressInitiationException class>>display:at:from:to:during:
>>> ByteString(String)>>displayProgressAt:from:to:during:
>>> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
>>> [] in ChangeSet class>>newChangesFromStream:named: {[newSet
>>> ifNotNil: [(aStream respondsTo: #converter:) ifTrue:
>>> [newStrea...]}
>>> BlockContext>>ensure:
>>> ChangeSet class>>newChangesFromStream:named:
>>> [] in Utilities
>>> class>>readServer:special:updatesThrough:saveLocally:updateImage:
>>> {[:bar | [this := docQueue next. nextDoc := docQueue next.
>>> nextDoc
>>> = #fail...]}
>>> [] in ProgressInitiationException>>defaultAction {[result :=
>>> workBlock
>>> value: progress]}
>>> BlockContext>>ensure:
>>> ProgressInitiationException>>defaultAction
>>> UndefinedObject>>handleSignal:
>>> MethodContext(ContextPart)>>handleSignal:
>>> ProgressInitiationException(Exception)>>signal
>>> ProgressInitiationException>>display:at:from:to:during:
>>> ProgressInitiationException class>>display:at:from:to:during:
>>> ByteString(String)>>displayProgressAt:from:to:during:
>>> [] in Utilities
>>> class>>readServer:special:updatesThrough:saveLocally:updateImage:
>>> {[urls := self newUpdatesOn: (serverList collect: [:url |
>>> url , 'up...]}
>>> BlockContext>>ensure:
>>> CursorWithMask(Cursor)>>showWhile:
>>> Utilities
>>> class>>readServer:special:updatesThrough:saveLocally:updateImage:
>>> Utilities class>>readServerUpdatesThrough:saveLocally:updateImage:
>>> Utilities class>>readServerUpdatesSaveLocally:updateImage:
>>> Utilities class>>updateFromServer
>>> TheWorldMenu>>doMenuItem:with:
>>> [] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>>> {[(selArgCount := selector numArgs) = 0 ifTrue: [target perform:
>>> selector] ...]}
>>> BlockContext>>ensure:
>>> CursorWithMask(Cursor)>>showWhile:
>>> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>>> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
>>> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
>>> MouseButtonEvent>>sentTo:
>>> ToggleMenuItemMorph(Morph)>>handleEvent:
>>> MorphicEventDispatcher>>dispatchDefault:with:
>>> MorphicEventDispatcher>>dispatchEvent:with:
>>> ToggleMenuItemMorph(Morph)>>processEvent:using:
>>> MorphicEventDispatcher>>dispatchDefault:with:
>>> MorphicEventDispatcher>>dispatchEvent:with:
>>> MenuMorph(Morph)>>processEvent:using:
>>> MenuMorph(Morph)>>processEvent:
>>> MenuMorph>>handleFocusEvent:
>>> [] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.
>>> ActiveEvent := anEvent. result := focusHolder han...]}
>>> [] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
>>> BlockContext>>on:do:
>>> PasteUpMorph>>becomeActiveDuring:
>>> HandMorph>>sendFocusEvent:to:clear:
>>> HandMorph>>sendEvent:focus:clear:
>>> HandMorph>>sendMouseEvent:
>>> HandMorph>>handleEvent:
>>> HandMorph>>processEvents
>>> [] in WorldState>>doOneCycleNowFor: {[:h | ActiveHand := h. h
>>> processEvents. ActiveHand := nil]}
>>> Array(SequenceableCollection)>>do:
>>> WorldState>>handsDo:
>>> WorldState>>doOneCycleNowFor:
>>> WorldState>>doOneCycleFor:
>>> PasteUpMorph>>doOneCycle
>>> [] in Project class>>spawnNewProcess {[[World doOneCycle. Processor
>>> yield. false] whileFalse. nil]}
>>> [] in BlockContext>>newProcess {[self value. Processor
>>> terminateActive]}
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> Pharo-project(a)lists.gforge.inria.fr
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Jan. 5, 2009
Re: [Pharo-project] Pharo Issues
by Stéphane Ducasse
Adrian
I just commited a new script280 (which remove the Sixx-
stephane_ducasse.2.mcz)
I'm wondering why we have a sixx package in pharo-core. To me this is
at the minimum a dev dependency
I will retry to load scriptloader711 and rollback if necessary
On Jan 5, 2009, at 9:56 PM, Adrian Lienhard wrote:
> Hi Brian,
>
> I checked and it worked for me. It looks like a network issue or
> SqueakSource not replying for a second. Could you try again and report
> back if the problem persists for you? I also suggest to delete the
> package-cache folder.
>
> Cheers,
> Adrian
>
> On Jan 5, 2009, at 21:45 , Brian Brown wrote:
>
>> Greetings all,
>>
>> I download the latest image from the site (10196 dev), and selected
>> "Software update" from the System Menu. There is an error with
>> update:
>>
>> 10201-Pha-FlapTabViewerObjectPassOneOverScriptSyst
>>
>> While it is in the "Adding Versions" step, we get an exception trying
>> to read a stream on this file: Sixx-stephane_ducasse.2.mcz
>>
>>
>> Here is the traceback:
>>
>> UndefinedObject(Object)>>doesNotUnderstand: #readStream
>> MCScanner class>>scanTokens:
>> MCMczReader>>parseMember:
>> MCMczReader>>loadPackage
>> MCMczReader(MCVersionReader)>>package
>> MCMczReader(MCVersionReader)>>basicVersion
>> MCMczReader(MCVersionReader)>>version
>> [] in
>> MCHttpRepository(MCFileBasedRepository)>>loadVersionFromFileNamed:
>> {[:r | r version]}
>> BlockContext>>valueWithPossibleArgs:
>> MCMczReader(ProtoObject)>>ifNotNil:
>> MCHttpRepository>>versionReaderForFileNamed:do:
>> MCHttpRepository(MCFileBasedRepository)>>loadVersionFromFileNamed:
>> [] in ScriptLoader>>loadTogether:merge: {[:fn | loader addVersion:
>> (self repository loadVersionFromFileNamed: fn)]}
>> [] in
>> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
>> {[:each :i | bar value: i. aBlock value: each]}
>> OrderedCollection(SequenceableCollection)>>withIndexDo:
>> [] in
>> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
>> {[:bar | self withIndexDo: [:each :i | bar value: i. aBlock
>> value: e...]}
>> [] in ProgressInitiationException>>defaultAction {[result :=
>> workBlock
>> value: progress]}
>> BlockContext>>ensure:
>> ProgressInitiationException>>defaultAction
>> UndefinedObject>>handleSignal:
>> MethodContext(ContextPart)>>handleSignal:
>> MethodContext(ContextPart)>>handleSignal:
>> ProgressInitiationException(Exception)>>signal
>> ProgressInitiationException>>display:at:from:to:during:
>> ProgressInitiationException class>>display:at:from:to:during:
>> ByteString(String)>>displayProgressAt:from:to:during:
>> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
>> ScriptLoader>>loadTogether:merge:
>> ScriptLoader>>script280
>> ScriptLoader>>update10201
>> UndefinedObject>>DoIt
>> Compiler>>evaluate:in:to:notifying:ifFail:logged:
>> Compiler class>>evaluate:for:notifying:logged:
>> Compiler class>>evaluate:for:logged:
>> Compiler class>>evaluate:logged:
>> [] in
>> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
>> {[val := (self peekFor: $!) ifTrue: [(Compiler evaluate: self
>> nextChunk l...]}
>> BlockContext>>on:do:
>> [] in
>> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
>> {[:bar | [self atEnd] whileFalse: [bar value: self position.
>> self skipS...]}
>> [] in ProgressInitiationException>>defaultAction {[result :=
>> workBlock
>> value: progress]}
>> BlockContext>>ensure:
>> ProgressInitiationException>>defaultAction
>> UndefinedObject>>handleSignal:
>> MethodContext(ContextPart)>>handleSignal:
>> ProgressInitiationException(Exception)>>signal
>> ProgressInitiationException>>display:at:from:to:during:
>> ProgressInitiationException class>>display:at:from:to:during:
>> ByteString(String)>>displayProgressAt:from:to:during:
>> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
>> [] in ChangeSet class>>newChangesFromStream:named: {[newSet
>> ifNotNil: [(aStream respondsTo: #converter:) ifTrue:
>> [newStrea...]}
>> BlockContext>>ensure:
>> ChangeSet class>>newChangesFromStream:named:
>> [] in Utilities
>> class>>readServer:special:updatesThrough:saveLocally:updateImage:
>> {[:bar | [this := docQueue next. nextDoc := docQueue next. nextDoc
>> = #fail...]}
>> [] in ProgressInitiationException>>defaultAction {[result :=
>> workBlock
>> value: progress]}
>> BlockContext>>ensure:
>> ProgressInitiationException>>defaultAction
>> UndefinedObject>>handleSignal:
>> MethodContext(ContextPart)>>handleSignal:
>> ProgressInitiationException(Exception)>>signal
>> ProgressInitiationException>>display:at:from:to:during:
>> ProgressInitiationException class>>display:at:from:to:during:
>> ByteString(String)>>displayProgressAt:from:to:during:
>> [] in Utilities
>> class>>readServer:special:updatesThrough:saveLocally:updateImage:
>> {[urls := self newUpdatesOn: (serverList collect: [:url |
>> url , 'up...]}
>> BlockContext>>ensure:
>> CursorWithMask(Cursor)>>showWhile:
>> Utilities
>> class>>readServer:special:updatesThrough:saveLocally:updateImage:
>> Utilities class>>readServerUpdatesThrough:saveLocally:updateImage:
>> Utilities class>>readServerUpdatesSaveLocally:updateImage:
>> Utilities class>>updateFromServer
>> TheWorldMenu>>doMenuItem:with:
>> [] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>> {[(selArgCount := selector numArgs) = 0 ifTrue: [target perform:
>> selector] ...]}
>> BlockContext>>ensure:
>> CursorWithMask(Cursor)>>showWhile:
>> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
>> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
>> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
>> MouseButtonEvent>>sentTo:
>> ToggleMenuItemMorph(Morph)>>handleEvent:
>> MorphicEventDispatcher>>dispatchDefault:with:
>> MorphicEventDispatcher>>dispatchEvent:with:
>> ToggleMenuItemMorph(Morph)>>processEvent:using:
>> MorphicEventDispatcher>>dispatchDefault:with:
>> MorphicEventDispatcher>>dispatchEvent:with:
>> MenuMorph(Morph)>>processEvent:using:
>> MenuMorph(Morph)>>processEvent:
>> MenuMorph>>handleFocusEvent:
>> [] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.
>> ActiveEvent := anEvent. result := focusHolder han...]}
>> [] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
>> BlockContext>>on:do:
>> PasteUpMorph>>becomeActiveDuring:
>> HandMorph>>sendFocusEvent:to:clear:
>> HandMorph>>sendEvent:focus:clear:
>> HandMorph>>sendMouseEvent:
>> HandMorph>>handleEvent:
>> HandMorph>>processEvents
>> [] in WorldState>>doOneCycleNowFor: {[:h | ActiveHand := h. h
>> processEvents. ActiveHand := nil]}
>> Array(SequenceableCollection)>>do:
>> WorldState>>handsDo:
>> WorldState>>doOneCycleNowFor:
>> WorldState>>doOneCycleFor:
>> PasteUpMorph>>doOneCycle
>> [] in Project class>>spawnNewProcess {[[World doOneCycle. Processor
>> yield. false] whileFalse. nil]}
>> [] in BlockContext>>newProcess {[self value. Processor
>> terminateActive]}
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Jan. 5, 2009
Re: [Pharo-project] #traits
by Stéphane Ducasse
On Jan 5, 2009, at 9:51 PM, Adrian Lienhard wrote:
>
> On Jan 5, 2009, at 13:45 , Stéphane Ducasse wrote:
>
>> Hi adrian
>>
>> I wanted to know if we could not have
>> traits defined in Behavior and whose behavior would be
>>
>> self traitComposition allTraits
>>
> sure, seems like a useful shortcut.
Damien told me that it should be
traits
^ self traitsComposition traits
allTraits
^ self traitsComposition allTraits
>
>
>
>> BTW will you have some time to look at my improvements?
>
> Which ones are you referring to?
The ones fixing the sharing of compiled methods.
>
>
> Adrian
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Jan. 5, 2009
Re: [Pharo-project] Collection extensions
by Stéphane Ducasse
for these methods I could provide extensions for VW with test.
I think that they are important. And I agree with Gary.
> Can't remember the number of times I've had to implement these kinds
> of
> generally useful methods on various Smalltalk dialects (particularly
> #groupedBy:, called it #categorizedBy: myself ;-) ). Really should
> be part
> of all Smalltalks. I'd push for general adoption/standardisation for
> every
> dialect! That's the only way Smalltalk is going to evolve, the "ANSI
> standard" is years behind!
>
> Regards, Gary.
>
>>
>> So why do we do pharo. Really. If everything as to be compatible with
>> other
>> smalltalk. Terrible.
>> Can't we get smarter?
>> Why can't we tag the methods with <notAnsi> and build a tool that
>> check when you
>> do a fill out. I do not write code to be portable to VisualWorks so?
>>
>>> I would prefer to have such extension methods separate from the
>>> core.
>>
>> Me not. Because then in a lot of places I will have to inline their
>> body.
>>
>> Stef
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Jan. 5, 2009
Re: [Pharo-project] Pharo Issues
by Stéphane Ducasse
Thanks brian
I probably made a mistake by making the release with a dev image. I
will fix that.
Stef
On Jan 5, 2009, at 9:45 PM, Brian Brown wrote:
> Greetings all,
>
> I download the latest image from the site (10196 dev), and selected
> "Software update" from the System Menu. There is an error with update:
>
> 10201-Pha-FlapTabViewerObjectPassOneOverScriptSyst
>
> While it is in the "Adding Versions" step, we get an exception trying
> to read a stream on this file: Sixx-stephane_ducasse.2.mcz
>
>
> Here is the traceback:
>
> UndefinedObject(Object)>>doesNotUnderstand: #readStream
> MCScanner class>>scanTokens:
> MCMczReader>>parseMember:
> MCMczReader>>loadPackage
> MCMczReader(MCVersionReader)>>package
> MCMczReader(MCVersionReader)>>basicVersion
> MCMczReader(MCVersionReader)>>version
> [] in
> MCHttpRepository(MCFileBasedRepository)>>loadVersionFromFileNamed:
> {[:r | r version]}
> BlockContext>>valueWithPossibleArgs:
> MCMczReader(ProtoObject)>>ifNotNil:
> MCHttpRepository>>versionReaderForFileNamed:do:
> MCHttpRepository(MCFileBasedRepository)>>loadVersionFromFileNamed:
> [] in ScriptLoader>>loadTogether:merge: {[:fn | loader addVersion:
> (self repository loadVersionFromFileNamed: fn)]}
> [] in
> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
> {[:each :i | bar value: i. aBlock value: each]}
> OrderedCollection(SequenceableCollection)>>withIndexDo:
> [] in
> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
> {[:bar | self withIndexDo: [:each :i | bar value: i. aBlock
> value: e...]}
> [] in ProgressInitiationException>>defaultAction {[result := workBlock
> value: progress]}
> BlockContext>>ensure:
> ProgressInitiationException>>defaultAction
> UndefinedObject>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ProgressInitiationException(Exception)>>signal
> ProgressInitiationException>>display:at:from:to:during:
> ProgressInitiationException class>>display:at:from:to:during:
> ByteString(String)>>displayProgressAt:from:to:during:
> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
> ScriptLoader>>loadTogether:merge:
> ScriptLoader>>script280
> ScriptLoader>>update10201
> UndefinedObject>>DoIt
> Compiler>>evaluate:in:to:notifying:ifFail:logged:
> Compiler class>>evaluate:for:notifying:logged:
> Compiler class>>evaluate:for:logged:
> Compiler class>>evaluate:logged:
> [] in
> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
> {[val := (self peekFor: $!) ifTrue: [(Compiler evaluate: self
> nextChunk l...]}
> BlockContext>>on:do:
> [] in
> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
> {[:bar | [self atEnd] whileFalse: [bar value: self position.
> self skipS...]}
> [] in ProgressInitiationException>>defaultAction {[result := workBlock
> value: progress]}
> BlockContext>>ensure:
> ProgressInitiationException>>defaultAction
> UndefinedObject>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ProgressInitiationException(Exception)>>signal
> ProgressInitiationException>>display:at:from:to:during:
> ProgressInitiationException class>>display:at:from:to:during:
> ByteString(String)>>displayProgressAt:from:to:during:
> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
> [] in ChangeSet class>>newChangesFromStream:named: {[newSet
> ifNotNil: [(aStream respondsTo: #converter:) ifTrue:
> [newStrea...]}
> BlockContext>>ensure:
> ChangeSet class>>newChangesFromStream:named:
> [] in Utilities
> class>>readServer:special:updatesThrough:saveLocally:updateImage:
> {[:bar | [this := docQueue next. nextDoc := docQueue next. nextDoc
> = #fail...]}
> [] in ProgressInitiationException>>defaultAction {[result := workBlock
> value: progress]}
> BlockContext>>ensure:
> ProgressInitiationException>>defaultAction
> UndefinedObject>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ProgressInitiationException(Exception)>>signal
> ProgressInitiationException>>display:at:from:to:during:
> ProgressInitiationException class>>display:at:from:to:during:
> ByteString(String)>>displayProgressAt:from:to:during:
> [] in Utilities
> class>>readServer:special:updatesThrough:saveLocally:updateImage:
> {[urls := self newUpdatesOn: (serverList collect: [:url |
> url , 'up...]}
> BlockContext>>ensure:
> CursorWithMask(Cursor)>>showWhile:
> Utilities
> class>>readServer:special:updatesThrough:saveLocally:updateImage:
> Utilities class>>readServerUpdatesThrough:saveLocally:updateImage:
> Utilities class>>readServerUpdatesSaveLocally:updateImage:
> Utilities class>>updateFromServer
> TheWorldMenu>>doMenuItem:with:
> [] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
> {[(selArgCount := selector numArgs) = 0 ifTrue: [target perform:
> selector] ...]}
> BlockContext>>ensure:
> CursorWithMask(Cursor)>>showWhile:
> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
> MouseButtonEvent>>sentTo:
> ToggleMenuItemMorph(Morph)>>handleEvent:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> ToggleMenuItemMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> MenuMorph(Morph)>>processEvent:using:
> MenuMorph(Morph)>>processEvent:
> MenuMorph>>handleFocusEvent:
> [] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.
> ActiveEvent := anEvent. result := focusHolder han...]}
> [] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
> BlockContext>>on:do:
> PasteUpMorph>>becomeActiveDuring:
> HandMorph>>sendFocusEvent:to:clear:
> HandMorph>>sendEvent:focus:clear:
> HandMorph>>sendMouseEvent:
> HandMorph>>handleEvent:
> HandMorph>>processEvents
> [] in WorldState>>doOneCycleNowFor: {[:h | ActiveHand := h. h
> processEvents. ActiveHand := nil]}
> Array(SequenceableCollection)>>do:
> WorldState>>handsDo:
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
> PasteUpMorph>>doOneCycle
> [] in Project class>>spawnNewProcess {[[World doOneCycle. Processor
> yield. false] whileFalse. nil]}
> [] in BlockContext>>newProcess {[self value. Processor
> terminateActive]}
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
Jan. 5, 2009
Re: [Pharo-project] Pharo Issues
by Adrian Lienhard
Hi Brian,
I checked and it worked for me. It looks like a network issue or
SqueakSource not replying for a second. Could you try again and report
back if the problem persists for you? I also suggest to delete the
package-cache folder.
Cheers,
Adrian
On Jan 5, 2009, at 21:45 , Brian Brown wrote:
> Greetings all,
>
> I download the latest image from the site (10196 dev), and selected
> "Software update" from the System Menu. There is an error with update:
>
> 10201-Pha-FlapTabViewerObjectPassOneOverScriptSyst
>
> While it is in the "Adding Versions" step, we get an exception trying
> to read a stream on this file: Sixx-stephane_ducasse.2.mcz
>
>
> Here is the traceback:
>
> UndefinedObject(Object)>>doesNotUnderstand: #readStream
> MCScanner class>>scanTokens:
> MCMczReader>>parseMember:
> MCMczReader>>loadPackage
> MCMczReader(MCVersionReader)>>package
> MCMczReader(MCVersionReader)>>basicVersion
> MCMczReader(MCVersionReader)>>version
> [] in
> MCHttpRepository(MCFileBasedRepository)>>loadVersionFromFileNamed:
> {[:r | r version]}
> BlockContext>>valueWithPossibleArgs:
> MCMczReader(ProtoObject)>>ifNotNil:
> MCHttpRepository>>versionReaderForFileNamed:do:
> MCHttpRepository(MCFileBasedRepository)>>loadVersionFromFileNamed:
> [] in ScriptLoader>>loadTogether:merge: {[:fn | loader addVersion:
> (self repository loadVersionFromFileNamed: fn)]}
> [] in
> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
> {[:each :i | bar value: i. aBlock value: each]}
> OrderedCollection(SequenceableCollection)>>withIndexDo:
> [] in
> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
> {[:bar | self withIndexDo: [:each :i | bar value: i. aBlock
> value: e...]}
> [] in ProgressInitiationException>>defaultAction {[result := workBlock
> value: progress]}
> BlockContext>>ensure:
> ProgressInitiationException>>defaultAction
> UndefinedObject>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ProgressInitiationException(Exception)>>signal
> ProgressInitiationException>>display:at:from:to:during:
> ProgressInitiationException class>>display:at:from:to:during:
> ByteString(String)>>displayProgressAt:from:to:during:
> OrderedCollection(SequenceableCollection)>>do:displayingProgress:
> ScriptLoader>>loadTogether:merge:
> ScriptLoader>>script280
> ScriptLoader>>update10201
> UndefinedObject>>DoIt
> Compiler>>evaluate:in:to:notifying:ifFail:logged:
> Compiler class>>evaluate:for:notifying:logged:
> Compiler class>>evaluate:for:logged:
> Compiler class>>evaluate:logged:
> [] in
> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
> {[val := (self peekFor: $!) ifTrue: [(Compiler evaluate: self
> nextChunk l...]}
> BlockContext>>on:do:
> [] in
> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
> {[:bar | [self atEnd] whileFalse: [bar value: self position.
> self skipS...]}
> [] in ProgressInitiationException>>defaultAction {[result := workBlock
> value: progress]}
> BlockContext>>ensure:
> ProgressInitiationException>>defaultAction
> UndefinedObject>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ProgressInitiationException(Exception)>>signal
> ProgressInitiationException>>display:at:from:to:during:
> ProgressInitiationException class>>display:at:from:to:during:
> ByteString(String)>>displayProgressAt:from:to:during:
> MultiByteBinaryOrTextStream(PositionableStream)>>fileInAnnouncing:
> [] in ChangeSet class>>newChangesFromStream:named: {[newSet
> ifNotNil: [(aStream respondsTo: #converter:) ifTrue:
> [newStrea...]}
> BlockContext>>ensure:
> ChangeSet class>>newChangesFromStream:named:
> [] in Utilities
> class>>readServer:special:updatesThrough:saveLocally:updateImage:
> {[:bar | [this := docQueue next. nextDoc := docQueue next. nextDoc
> = #fail...]}
> [] in ProgressInitiationException>>defaultAction {[result := workBlock
> value: progress]}
> BlockContext>>ensure:
> ProgressInitiationException>>defaultAction
> UndefinedObject>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ProgressInitiationException(Exception)>>signal
> ProgressInitiationException>>display:at:from:to:during:
> ProgressInitiationException class>>display:at:from:to:during:
> ByteString(String)>>displayProgressAt:from:to:during:
> [] in Utilities
> class>>readServer:special:updatesThrough:saveLocally:updateImage:
> {[urls := self newUpdatesOn: (serverList collect: [:url |
> url , 'up...]}
> BlockContext>>ensure:
> CursorWithMask(Cursor)>>showWhile:
> Utilities
> class>>readServer:special:updatesThrough:saveLocally:updateImage:
> Utilities class>>readServerUpdatesThrough:saveLocally:updateImage:
> Utilities class>>readServerUpdatesSaveLocally:updateImage:
> Utilities class>>updateFromServer
> TheWorldMenu>>doMenuItem:with:
> [] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
> {[(selArgCount := selector numArgs) = 0 ifTrue: [target perform:
> selector] ...]}
> BlockContext>>ensure:
> CursorWithMask(Cursor)>>showWhile:
> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
> MouseButtonEvent>>sentTo:
> ToggleMenuItemMorph(Morph)>>handleEvent:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> ToggleMenuItemMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> MenuMorph(Morph)>>processEvent:using:
> MenuMorph(Morph)>>processEvent:
> MenuMorph>>handleFocusEvent:
> [] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.
> ActiveEvent := anEvent. result := focusHolder han...]}
> [] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
> BlockContext>>on:do:
> PasteUpMorph>>becomeActiveDuring:
> HandMorph>>sendFocusEvent:to:clear:
> HandMorph>>sendEvent:focus:clear:
> HandMorph>>sendMouseEvent:
> HandMorph>>handleEvent:
> HandMorph>>processEvents
> [] in WorldState>>doOneCycleNowFor: {[:h | ActiveHand := h. h
> processEvents. ActiveHand := nil]}
> Array(SequenceableCollection)>>do:
> WorldState>>handsDo:
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
> PasteUpMorph>>doOneCycle
> [] in Project class>>spawnNewProcess {[[World doOneCycle. Processor
> yield. false] whileFalse. nil]}
> [] in BlockContext>>newProcess {[self value. Processor
> terminateActive]}
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Jan. 5, 2009
Re: [Pharo-project] #traits
by Adrian Lienhard
On Jan 5, 2009, at 13:45 , Stéphane Ducasse wrote:
> Hi adrian
>
> I wanted to know if we could not have
> traits defined in Behavior and whose behavior would be
>
> self traitComposition allTraits
>
sure, seems like a useful shortcut.
> BTW will you have some time to look at my improvements?
Which ones are you referring to?
Adrian
Jan. 5, 2009
Re: [Pharo-project] #traits
by Adrian Lienhard
Damien, thanks for implementing this. I checked your submission,
however, the last version, Traits-damiencassou.254, deletes classes
like Trait from the system. Something went wrong there. Could you
check again?
Cheers,
Adrian
On Jan 5, 2009, at 16:57 , Damien Cassou wrote:
> On Mon, Jan 5, 2009 at 1:45 PM, Stéphane Ducasse
> <stephane.ducasse(a)inria.fr> wrote:
>> I wanted to know if we could not have
>> traits defined in Behavior and whose behavior would be
>>
>> self traitComposition allTraits
>>
>> BTW will you have some time to look at my improvements?
>
> http://code.google.com/p/pharo/issues/detail?id=433
>
> I propose to send #traits instead of #allTraits. #traits returns the
> collection of traits used in a behavior whereas #allTraits also
> returns the traits that are used by those traits.
>
> --
> Damien Cassou
> http://damiencassou.seasidehosting.st
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Jan. 5, 2009