Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- 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
- 3 participants
- 144616 messages
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/60234
Home: https://github.com/pharo-project/pharo-core
Sept. 21, 2016
[pharo-project/pharo-core] a7e9c0: 60234
by GitHub
Branch: refs/heads/6.0
Home: https://github.com/pharo-project/pharo-core
Commit: a7e9c0c0b40a823769475f210fbb1ce28d0409bb
https://github.com/pharo-project/pharo-core/commit/a7e9c0c0b40a823769475f21…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2016-09-21 (Wed, 21 Sep 2016)
Changed paths:
M AST-Core.package/RBLiteralToken.class/class/instance creation/value_start_stop_.st
A AST-Core.package/RBLiteralToken.class/class/instance creation/value_start_stop_source_.st
M AST-Core.package/RBLiteralToken.class/definition.st
A AST-Core.package/RBLiteralToken.class/instance/accessing/source.st
A AST-Core.package/RBLiteralToken.class/instance/initialize-release/source_.st
R AST-Core.package/RBNumberLiteralToken.class/class/instance creation/value_start_stop_source_.st
M AST-Core.package/RBNumberLiteralToken.class/definition.st
R AST-Core.package/RBNumberLiteralToken.class/instance/accessing/source.st
R AST-Core.package/RBNumberLiteralToken.class/instance/initialize-release/source_.st
M AST-Core.package/RBParser.class/instance/private-parsing/parsePrimitiveValueLiteral.st
M AST-Core.package/RBParser.class/instance/private/patchLiteralArrayToken.st
A AST-Core.package/RBValueToken.class/instance/accessing/source.st
A AST-Tests-Core.package/RBFormatterTest.class/instance/testing/testPreserveLiteralArrayFormat.st
A AST-Tests-Core.package/RBFormatterTest.class/instance/testing/testPreserveLiteralNumberFormat.st
M ConfigurationOfEpicea.package/ConfigurationOfEpicea.class/instance/tags/stable_.st
A ConfigurationOfEpicea.package/ConfigurationOfEpicea.class/instance/versions/version802_.st
M EpiceaBrowsers.package/EpIconVisitor.class/instance/visitor/visitBehaviorCopy_.st
M EpiceaBrowsers.package/EpIconVisitor.class/instance/visitor/visitExpressionEvaluation_.st
M EpiceaBrowsers.package/EpIconVisitor.class/instance/visitor/visitLogCommentModification_.st
M EpiceaBrowsers.package/EpIconVisitor.class/instance/visitor/visitMonticelloVersionSave_.st
M EpiceaBrowsers.package/EpIconVisitor.class/instance/visitor/visitMonticelloVersionsLoad_.st
M EpiceaBrowsers.package/EpIconVisitor.class/instance/visitor/visitRedo_.st
M EpiceaBrowsers.package/EpIconVisitor.class/instance/visitor/visitRefactoring_.st
M EpiceaBrowsers.package/EpIconVisitor.class/instance/visitor/visitSessionEnd_.st
M EpiceaBrowsers.package/EpIconVisitor.class/instance/visitor/visitSessionSnapshot_.st
M EpiceaBrowsers.package/EpIconVisitor.class/instance/visitor/visitSessionStart_.st
M EpiceaBrowsers.package/EpIconVisitor.class/instance/visitor/visitUndo_.st
M EpiceaBrowsers.package/EpLogBrowser.class/instance/initialization/initializeFiltersModel.st
M EpiceaBrowsers.package/EpLogBrowserView.class/class/accessing/icon.st
M EpiceaBrowsers.package/EpLogSetModel.class/class/accessing/icon.st
M EpiceaBrowsers.package/EpSelection.class/instance/populating menu/populateMenu_.st
M EpiceaBrowsers.package/EpWorldMenu.class/class/accessing/mainIcon.st
R ScriptLoader60.package/ScriptLoader.class/instance/pharo - scripts/script60233.st
A ScriptLoader60.package/ScriptLoader.class/instance/pharo - scripts/script60234.st
R ScriptLoader60.package/ScriptLoader.class/instance/pharo - updates/update60233.st
A ScriptLoader60.package/ScriptLoader.class/instance/pharo - updates/update60234.st
M ScriptLoader60.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
Log Message:
-----------
60234
19115 formatter should not modify symbol formatting in literal arrays
https://pharo.fogbugz.com/f/cases/19115
19119 Integrate Epicea 8.0.2
https://pharo.fogbugz.com/f/cases/19119
http://files.pharo.org/image/60/60234.zip
Sept. 21, 2016
Re: [Pharo-dev] [Vm-dev] PrimitiveFailed: primitive #elementsForwardIdentityTo: in Array failed
by Henrik Johansen
Yes, you need a new VM built from Cog sources after June, hopefully a newer can be promoted to stable soon...
https://pharo.fogbugz.com/f/cases/18711/Cannot-commit-a-special-character-i…
Cheers,
Henry
> On 21 Sep 2016, at 7:19 , Hernán Morales Durand <hernan.morales(a)gmail.com> wrote:
>
> Hi
>
> I don't know if this was reported. Apparently there is a problem when migrating a large number of instances, I have aprox. 270,000 instances from which I simply pulled up an ivar in their class to a higher superclass, and a PrimitiveFailed raised.
>
> It can be reproduced by installing Territorial in Pharo 5.0 with Spur VM 5.0 from 4 May 2016 in Windows 8.1 (this is the standard image installed using wget command line in msys).
>
> Gofer it
> smalltalkhubUser: 'hernan' project: 'Territorial';
> configuration;
> loadDevelopment.
> TCityOrganization addOpenGeoCode
>
> Then manually install Territorial-HernanMoralesDurand.163 from Monticello. Backwards (installing .163, populating, then .166) also reproduces the issue.
>
> Is there a fix for this?
>
> --- The full stack ---
> Array(Object)>>primitiveFailed:
> Array(Object)>>primitiveFailed
> Array>>elementsForwardIdentityTo:
> TerritorialCity class(ClassDescription)>>updateInstances:from:isMeta:
> TerritorialCity class(ClassDescription)>>updateInstancesFrom:
> PharoClassInstaller>>updateClass:to:
> [ 1 to: old size do: [ :index | self updateClass: (old at: index) to: (new at: index) ].
> old elementsForwardIdentityTo: new.
> " Garbage collect away the zombie instances left behind in garbage memory in #updateInstancesFrom: "
> " If we don't clean up this garbage, a second update would revive them with a wrong layout! "
> " (newClass rather than oldClass, since they are now both newClass) "
> Smalltalk garbageCollect ] in PharoClassInstaller>>migrateClasses:to:using:
> BlockClosure>>ensure:
> BlockClosure>>valueUnpreemptively
> PharoClassInstaller>>migrateClasses:to:using:
> SlotClassBuilder>>migrateClasses:
> SlotClassBuilder>>apply:
> SlotClassBuilder>>build
> PharoClassInstaller class(AbstractClassInstaller class)>>make:
> [ PharoClassInstaller
> make: [ :builder |
> builder
> superclass: superClass;
> name: name;
> layoutClass: (ObjectLayout layoutForType: type);
> slots: self instanceVariables;
> sharedVariables: self classVariables;
> sharedPools: self sharedPoolsString;
> classSlots: self classInstanceVariables;
> traitComposition: self traitCompositionCompiled;
> classTraitComposition: self classTraitCompositionCompiled;
> comment: comment stamp: commentStamp;
> category: category;
> environment: superClass environment ] ] in MCClassDefinition>>createClass
> BlockClosure>>on:do:
> MCClassDefinition>>createClass
> MCClassDefinition>>load
> MCClassDefinition(MCDefinition)>>addMethodAdditionTo:
> [ :each | each addMethodAdditionTo: methodAdditions ] in MCPackageLoader>>basicLoadDefinitions
> [ :each |
> | newLabel |
> "Special handling for first and last element"
> (count = 0
> or: [ count + 1 = size
> or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ])
> ifTrue: [ bar current: count.
> oldLabel = (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ])
> ifFalse: [ bar label: newLabel.
> oldLabel := newLabel ].
> lastUpdate := Time millisecondClockValue ].
> aBlock value: each.
> count := count + 1 ] in [ :bar |
> labelBlock := aStringOrBlock isString
> ifTrue: [ bar label: aStringOrBlock.
> [ :dummyItem | aStringOrBlock ] ]
> ifFalse: [ aStringOrBlock ].
> self
> do: [ :each |
> | newLabel |
> "Special handling for first and last element"
> (count = 0
> or: [ count + 1 = size
> or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ])
> ifTrue: [ bar current: count.
> oldLabel
> = (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ])
> ifFalse: [ bar label: newLabel.
> oldLabel := newLabel ].
> lastUpdate := Time millisecondClockValue ].
> aBlock value: each.
> count := count + 1 ] ] in OrderedCollection(Collection)>>do:displayingProgress:every:
> OrderedCollection>>do:
> [ :bar |
> labelBlock := aStringOrBlock isString
> ifTrue: [ bar label: aStringOrBlock.
> [ :dummyItem | aStringOrBlock ] ]
> ifFalse: [ aStringOrBlock ].
> self
> do: [ :each |
> | newLabel |
> "Special handling for first and last element"
> (count = 0
> or: [ count + 1 = size
> or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ])
> ifTrue: [ bar current: count.
> oldLabel
> = (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ])
> ifFalse: [ bar label: newLabel.
> oldLabel := newLabel ].
> lastUpdate := Time millisecondClockValue ].
> aBlock value: each.
> count := count + 1 ] ] in OrderedCollection(Collection)>>do:displayingProgress:every:
> BlockClosure>>cull:
> [ ^ block cull: self ] in [ self prepareForRunning.
> CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
> [ p psValueAt: index put: anObject.
> aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
> BlockClosure>>ensure:
> CurrentJob(DynamicVariable)>>value:during:
> CurrentJob class(DynamicVariable class)>>value:during:
> [ self prepareForRunning.
> CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
> BlockClosure>>ensure:
> Job>>run
> MorphicUIManager(UIManager)>>displayProgress:from:to:during:
> ByteString(String)>>displayProgressFrom:to:during:
> OrderedCollection(Collection)>>do:displayingProgress:every:
> OrderedCollection(Collection)>>do:displayingProgress:
> MCPackageLoader>>basicLoadDefinitions
> [ self basicLoadDefinitions ] in [ self handleLoadErrorsDuring: [ self basicLoadDefinitions ] ] in MCPackageLoader>>basicLoad
> BlockClosure>>on:do:
> - - - - - - - - - - - - - - -
> - - - - - - - - - - - - - - - - - -
> [ aBlock
> on: InMidstOfFileinNotification
> do: [ :notification | notification resume: true ] ] in MCPackageLoader>>handleLoadErrorsDuring:
> BlockClosure>>on:do:
> MCPackageLoader>>handleLoadErrorsDuring:
> [ self handleLoadErrorsDuring: [ self basicLoadDefinitions ] ] in MCPackageLoader>>basicLoad
> BlockClosure>>ensure:
> MCPackageLoader>>basicLoad
> [ self basicLoad ] in MCPackageLoader>>loadWithNameLike:
> BlockClosure>>ensure:
> MCPackageLoader>>useChangeSetNamed:during:
> MCPackageLoader>>useNewChangeSetNamedLike:during:
> MCPackageLoader>>loadWithNameLike:
> MCThreeWayMerger(MCMerger)>>loadWithNameLike:
> MCVersionMerger>>mergeWithNameLike:
> MCVersionMerger class>>mergeVersion:
> MCVersion>>merge
> MCFileRepositoryInspector(MCVersionInspector)>>merge
> MCFileRepositoryInspector>>merge
> MCFileRepositoryInspector(MCTool)>>performButtonAction:enabled:
> PluggableButtonMorph>>performAction:
> [ :m |
> (m containsPoint: evt cursorPoint)
> ifTrue: [ m enabled
> ifTrue: [ m performAction: evt ] ] ] in PluggableButtonMorph>>mouseUp:
> Array(SequenceableCollection)>>do:
> PluggableButtonMorph>>mouseUp:
> PluggableButtonMorph(Morph)>>handleMouseUp:
> MouseButtonEvent>>sentTo:
> PluggableButtonMorph(Morph)>>handleEvent:
> PluggableButtonMorph(Morph)>>handleFocusEvent:
> [ ActiveHand := self.
> ActiveEvent := anEvent.
> result := focusHolder
> handleFocusEvent: (anEvent transformedBy: (focusHolder transformedFrom: self)) ] in HandMorph>>sendFocusEvent:to:clear:
> BlockClosure>>on:do:
> WorldMorph(PasteUpMorph)>>becomeActiveDuring:
> HandMorph>>sendFocusEvent:to:clear:
> HandMorph>>sendEvent:focus:clear:
> HandMorph>>sendMouseEvent:
> HandMorph>>handleEvent:
> HandMorph>>processEvents
> [ :h |
> ActiveHand := h.
> h processEvents.
> ActiveHand := nil ] in WorldState>>doOneCycleNowFor:
> Array(SequenceableCollection)>>do:
> WorldState>>handsDo:
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
> WorldMorph>>doOneCycle
> [ [ World doOneCycle.
> Processor yield.
> false ] whileFalse: [ ] ] in MorphicUIManager>>spawnNewProcess
> [ self value.
> Processor terminateActive ] in BlockClosure>>newProcess
> -------------------------------------------------------------------------------
>
>
>
> Hernán
>
Sept. 21, 2016
Re: [Pharo-dev] How do recover change with epicea?
by Norbert Hartl
> Am 21.09.2016 um 08:02 schrieb stepharo <stepharo(a)free.fr>:
>
>
>
>> Le 21/9/16 à 06:50, Martin Dias a écrit :
>> Hi Stef, âNo idea why Epicea didn't log your changes.
>
> Me neither I tried to reproduce it and I could not.
> Still I lost 40 min deep hacking.
>>
>> About "monitor vs. log set"... the two new entries in World Menu > Tools > Epicea... I'd like user opinions to improve naming and UI. I can tell some things introduced in the latest integration.
>>
>> - The Log Set
>> As you know, Epicea Monitor logs code changes (and some IDE events such as MC load/save and refactorings). Such data is placed in .ombu files in a local directory. Each time a Pharo image opens, Epicea Monitor logs code changes into a new ombu file. Those ombu files in the local directory is what is currently called "Log Set".
>
> Session Set
Session changes
or
Last session changes
It is in the text. It writes changes since image start (=session)
>>
>> - The Monitor UI shows the code changes since Epicea started to log.
>> ===> This means it shows changes placed in potentially several ombu files.
>
> Full Log Set
>
All changes
Why so complicated names? Why so different to before?
Norbert
>
>>
>> - The Log Set UI shows:
>> -- all the logs in the local directory on the left panel, and
>> -- the content of the selected log in the right panel.
>> ===> This UI visually connects the logs to help user to understand how the ombu files are related. Note that the code changes displayed on the right panel belong to only one log (different than in the Monitor UI, that might show changes in several logs).
>>
>> Cheers,
>> Martin
>>
>>> On Tue, Sep 20, 2016 at 4:57 PM, stepharo <stepharo(a)free.fr> wrote:
>>> even better
>>>
>>> Smalltalk tools changeList browseRecentLog
>>>
>>> does not show any changes :)
>>>
>>> So I redownloaded the latest version of tried
>>>
>>> - changes something
>>>
>>> - exist without saving
>>>
>>> - reopening the image
>>>
>>> And I could not reproduce the bug.... Shit.
>>>
>>> So I lost my time.
>>>
>>> Stef
>>>
>>>
>>>
>>>
>>>
>>>> Hi
>>>>
>>>> i introduced a loop (yes totally stupid) in menu morph icon :)
>>>> so I had to quit my image.
>>>> I thought that epicea would show me all the changes and I could not find how to do it.
>>>> I do not know how to invoke the old recover lost changes... so so far I lost 40 min of dev :(
>>>>
>>>> I have no idea what is monitor vs log set in Epicea.
>>>> And log set is just with the changes I'm doing :( not the ones I lost :(
>>>>
>>>> In cutting alpha image it would be good to make sure that we cannot lose our work :(
>>>> Stef
>
Sept. 21, 2016
Re: [Pharo-dev] glitches in text selection
by stepharo
Thanks
This is strange it means that I used an older version while my scripts
are always taking the last one. I have to investigate it.
Stef
Le 20/9/16 à 22:10, Nicolai Hess a écrit :
> Yes, see case 19113, fixed in 60233
>
> 2016-09-20 21:35 GMT+02:00 stepharo <stepharo(a)free.fr
> <mailto:stepharo@free.fr>>:
>
> Since I'm selecting a lot Smalltalk ui icons.... I noticed that
> there is a bug in text selection.
>
> I thought it was me but no I select well the beginning of the
> expression that I see the cursor jumping around....And missing
> a couple of characters.
>
>
> Stef
>
>
>
Sept. 21, 2016
Re: [Pharo-dev] How do recover change with epicea?
by stepharo
Le 21/9/16 à 06:50, Martin Dias a écrit :
> Hi Stef, âNo idea why Epicea didn't log your changes.
Me neither I tried to reproduce it and I could not.
Still I lost 40 min deep hacking.
>
> About "monitor vs. log set"... the two new entries in World Menu >
> Tools > Epicea... I'd like user opinions to improve naming and UI. I
> can tell some things introduced in the latest integration.
>
> - The Log Set
> As you know, Epicea Monitor logs code changes (and some IDE events
> such as MC load/save and refactorings). Such data is placed in .ombu
> files in a local directory. Each time a Pharo image opens, Epicea
> Monitor logs code changes into a new ombu file. Those ombu files in
> the local directory is what is currently called "Log Set".
Session Set
>
> - The Monitor UI shows the code changes since Epicea started to log.
> ===> This means it shows changes placed in potentially several ombu files.
Full Log Set
>
> - The Log Set UI shows:
> -- all the logs in the local directory on the left panel, and
> -- the content of the selected log in the right panel.
> ===> This UI visually connects the logs to help user to understand how
> the ombu files are related. Note that the code changes displayed on
> the right panel belong to only one log (different than in the Monitor
> UI, that might show changes in several logs).
>
> Cheers,
> Martin
>
> On Tue, Sep 20, 2016 at 4:57 PM, stepharo <stepharo(a)free.fr
> <mailto:stepharo@free.fr>> wrote:
>
> even better
>
> Smalltalk tools changeList browseRecentLog
>
> does not show any changes :)
>
> So I redownloaded the latest version of tried
>
> - changes something
>
> - exist without saving
>
> - reopening the image
>
> And I could not reproduce the bug.... Shit.
>
> So I lost my time.
>
> Stef
>
>
>
>
>
> Hi
>
> i introduced a loop (yes totally stupid) in menu morph icon :)
> so I had to quit my image.
> I thought that epicea would show me all the changes and I
> could not find how to do it.
> I do not know how to invoke the old recover lost changes... so
> so far I lost 40 min of dev :(
>
> I have no idea what is monitor vs log set in Epicea.
> And log set is just with the changes I'm doing :( not the ones
> I lost :(
>
> In cutting alpha image it would be good to make sure that we
> cannot lose our work :(
> Stef
>
>
>
>
>
>
Sept. 21, 2016
Synectique is recruiting
by stepharo
Synectique provides comprehensive and sophisticated analysis tools to
improve the quality of software, reduce maintenance costs, and thus enable
easier software evolution.
The company was created in 2013 and already got some renowned customers.
To sustain our growth we are looking for a full-time Smalltalk (Pharo)
developer with some additional non Smalltalk skills.
2+ years OO programming experience or equivalent, with strong skills in OO
design, front-end JavaScript and back-end Seaside/Pharo.
The ideal candidate should be comfortable with meta-model approaches,
client-side web technologies (HTML, CSS, JavaScript), be familiar with
code parsing and master different languages (Java, C++, C#, ADA,
Smalltalk).
The job is based in Lille, which is centrally located with good
connections by train to everywhere (one hour from Paris, 1h20 from
London, 35 min from Brussels).
Duration: Permanent (CDI)
Starting date: September 2016
Salary: depending on skill set/experience
Ready to travel if needed.
Additional Skills:
Object-oriented design/programming
Agile Methodologies
Fluent in French and/or English
Please send your applications to philippe.valenza(a)synectique.eu.
Sept. 21, 2016
PrimitiveFailed: primitive #elementsForwardIdentityTo: in Array failed
by Hernán Morales Durand
Hi
I don't know if this was reported. Apparently there is a problem when
migrating a large number of instances, I have aprox. 270,000 instances from
which I simply pulled up an ivar in their class to a higher superclass, and
a PrimitiveFailed raised.
It can be reproduced by installing Territorial in Pharo 5.0 with Spur VM
5.0 from 4 May 2016 in Windows 8.1 (this is the standard image installed
using wget command line in msys).
Gofer it
smalltalkhubUser: 'hernan' project: 'Territorial';
configuration;
loadDevelopment.
TCityOrganization addOpenGeoCode
Then manually install Territorial-HernanMoralesDurand.163 from Monticello.
Backwards (installing .163, populating, then .166) also reproduces the
issue.
Is there a fix for this?
--- The full stack ---
Array(Object)>>primitiveFailed:
Array(Object)>>primitiveFailed
Array>>elementsForwardIdentityTo:
TerritorialCity class(ClassDescription)>>updateInstances:from:isMeta:
TerritorialCity class(ClassDescription)>>updateInstancesFrom:
PharoClassInstaller>>updateClass:to:
[ 1 to: old size do: [ :index | self updateClass: (old at: index) to: (new
at: index) ].
old elementsForwardIdentityTo: new.
" Garbage collect away the zombie instances left behind in garbage memory
in #updateInstancesFrom: "
" If we don't clean up this garbage, a second update would revive them with
a wrong layout! "
" (newClass rather than oldClass, since they are now both newClass) "
Smalltalk garbageCollect ] in PharoClassInstaller>>migrateClasses:to:using:
BlockClosure>>ensure:
BlockClosure>>valueUnpreemptively
PharoClassInstaller>>migrateClasses:to:using:
SlotClassBuilder>>migrateClasses:
SlotClassBuilder>>apply:
SlotClassBuilder>>build
PharoClassInstaller class(AbstractClassInstaller class)>>make:
[ PharoClassInstaller
make: [ :builder |
builder
superclass: superClass;
name: name;
layoutClass: (ObjectLayout layoutForType: type);
slots: self instanceVariables;
sharedVariables: self classVariables;
sharedPools: self sharedPoolsString;
classSlots: self classInstanceVariables;
traitComposition: self traitCompositionCompiled;
classTraitComposition: self classTraitCompositionCompiled;
comment: comment stamp: commentStamp;
category: category;
environment: superClass environment ] ] in
MCClassDefinition>>createClass
BlockClosure>>on:do:
MCClassDefinition>>createClass
MCClassDefinition>>load
MCClassDefinition(MCDefinition)>>addMethodAdditionTo:
[ :each | each addMethodAdditionTo: methodAdditions ] in MCPackageLoader>>
basicLoadDefinitions
[ :each |
| newLabel |
"Special handling for first and last element"
(count = 0
or: [ count + 1 = size
or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ])
ifTrue: [ bar current: count.
oldLabel = (newLabel := (labelBlock cull: each) ifNil: [ oldLabel ])
ifFalse: [ bar label: newLabel.
oldLabel := newLabel ].
lastUpdate := Time millisecondClockValue ].
aBlock value: each.
count := count + 1 ] in [ :bar |
labelBlock := aStringOrBlock isString
ifTrue: [ bar label: aStringOrBlock.
[ :dummyItem | aStringOrBlock ] ]
ifFalse: [ aStringOrBlock ].
self
do: [ :each |
| newLabel |
"Special handling for first and last element"
(count = 0
or: [ count + 1 = size
or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ])
ifTrue: [ bar current: count.
oldLabel
= (newLabel := (labelBlock cull: each) ifNil: [
oldLabel ])
ifFalse: [ bar label: newLabel.
oldLabel := newLabel ].
lastUpdate := Time millisecondClockValue ].
aBlock value: each.
count := count + 1 ] ] in OrderedCollection(Collection)>
>do:displayingProgress:every:
OrderedCollection>>do:
[ :bar |
labelBlock := aStringOrBlock isString
ifTrue: [ bar label: aStringOrBlock.
[ :dummyItem | aStringOrBlock ] ]
ifFalse: [ aStringOrBlock ].
self
do: [ :each |
| newLabel |
"Special handling for first and last element"
(count = 0
or: [ count + 1 = size
or: [ (Time millisecondsSince: lastUpdate) >= msecs ] ])
ifTrue: [ bar current: count.
oldLabel
= (newLabel := (labelBlock cull: each) ifNil: [
oldLabel ])
ifFalse: [ bar label: newLabel.
oldLabel := newLabel ].
lastUpdate := Time millisecondClockValue ].
aBlock value: each.
count := count + 1 ] ] in OrderedCollection(Collection)>
>do:displayingProgress:every:
BlockClosure>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
[ p psValueAt: index put: anObject.
aBlock value ] in CurrentJob(DynamicVariable)>>value:during:
BlockClosure>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
CurrentJob value: self during: [ ^ block cull: self ] ] in Job>>run
BlockClosure>>ensure:
Job>>run
MorphicUIManager(UIManager)>>displayProgress:from:to:during:
ByteString(String)>>displayProgressFrom:to:during:
OrderedCollection(Collection)>>do:displayingProgress:every:
OrderedCollection(Collection)>>do:displayingProgress:
MCPackageLoader>>basicLoadDefinitions
[ self basicLoadDefinitions ] in [ self handleLoadErrorsDuring: [ self
basicLoadDefinitions ] ] in MCPackageLoader>>basicLoad
BlockClosure>>on:do:
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
[ aBlock
on: InMidstOfFileinNotification
do: [ :notification | notification resume: true ] ] in MCPackageLoader>>
handleLoadErrorsDuring:
BlockClosure>>on:do:
MCPackageLoader>>handleLoadErrorsDuring:
[ self handleLoadErrorsDuring: [ self basicLoadDefinitions ] ] in
MCPackageLoader>>basicLoad
BlockClosure>>ensure:
MCPackageLoader>>basicLoad
[ self basicLoad ] in MCPackageLoader>>loadWithNameLike:
BlockClosure>>ensure:
MCPackageLoader>>useChangeSetNamed:during:
MCPackageLoader>>useNewChangeSetNamedLike:during:
MCPackageLoader>>loadWithNameLike:
MCThreeWayMerger(MCMerger)>>loadWithNameLike:
MCVersionMerger>>mergeWithNameLike:
MCVersionMerger class>>mergeVersion:
MCVersion>>merge
MCFileRepositoryInspector(MCVersionInspector)>>merge
MCFileRepositoryInspector>>merge
MCFileRepositoryInspector(MCTool)>>performButtonAction:enabled:
PluggableButtonMorph>>performAction:
[ :m |
(m containsPoint: evt cursorPoint)
ifTrue: [ m enabled
ifTrue: [ m performAction: evt ] ] ] in
PluggableButtonMorph>>mouseUp:
Array(SequenceableCollection)>>do:
PluggableButtonMorph>>mouseUp:
PluggableButtonMorph(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
PluggableButtonMorph(Morph)>>handleEvent:
PluggableButtonMorph(Morph)>>handleFocusEvent:
[ ActiveHand := self.
ActiveEvent := anEvent.
result := focusHolder
handleFocusEvent: (anEvent transformedBy: (focusHolder transformedFrom:
self)) ] in HandMorph>>sendFocusEvent:to:clear:
BlockClosure>>on:do:
WorldMorph(PasteUpMorph)>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[ :h |
ActiveHand := h.
h processEvents.
ActiveHand := nil ] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
[ [ World doOneCycle.
Processor yield.
false ] whileFalse: [ ] ] in MorphicUIManager>>spawnNewProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess
------------------------------------------------------------
-------------------
Hernán
Sept. 21, 2016
Re: [Pharo-dev] How do recover change with epicea?
by Martin Dias
Hi Stef, âNo idea why Epicea didn't log your changes.
About "monitor vs. log set"... the two new entries in World Menu > Tools >
Epicea... I'd like user opinions to improve naming and UI. I can tell some
things introduced in the latest integration.
- The Log Set
As you know, Epicea Monitor logs code changes (and some IDE events such as
MC load/save and refactorings). Such data is placed in .ombu files in a
local directory. Each time a Pharo image opens, Epicea Monitor logs code
changes into a new ombu file. Those ombu files in the local directory is
what is currently called "Log Set".
- The Monitor UI shows the code changes since Epicea started to log.
===> This means it shows changes placed in potentially several ombu files.
- The Log Set UI shows:
-- all the logs in the local directory on the left panel, and
-- the content of the selected log in the right panel.
===> This UI visually connects the logs to help user to understand how the
ombu files are related. Note that the code changes displayed on the right
panel belong to only one log (different than in the Monitor UI, that might
show changes in several logs).
Cheers,
Martin
On Tue, Sep 20, 2016 at 4:57 PM, stepharo <stepharo(a)free.fr> wrote:
> even better
>
> Smalltalk tools changeList browseRecentLog
>
> does not show any changes :)
>
> So I redownloaded the latest version of tried
>
> - changes something
>
> - exist without saving
>
> - reopening the image
>
> And I could not reproduce the bug.... Shit.
>
> So I lost my time.
>
> Stef
>
>
>
>
>
> Hi
>>
>> i introduced a loop (yes totally stupid) in menu morph icon :)
>> so I had to quit my image.
>> I thought that epicea would show me all the changes and I could not find
>> how to do it.
>> I do not know how to invoke the old recover lost changes... so so far I
>> lost 40 min of dev :(
>>
>> I have no idea what is monitor vs log set in Epicea.
>> And log set is just with the changes I'm doing :( not the ones I lost :(
>>
>> In cutting alpha image it would be good to make sure that we cannot lose
>> our work :(
>> Stef
>>
>>
>>
>>
>
>
Sept. 21, 2016
Re: [Pharo-dev] EpSelection DNU (Pharo 60231)
by Martin Dias
Thanks Nicolai, both 1 and 2 are fixed in the new release
<https://pharo.fogbugz.com/f/cases/19119/Integrate-Epicea-8-0-2>.
Martin
On Tue, Sep 20, 2016 at 4:25 AM, Nicolai Hess <nicolaihess(a)gmail.com> wrote:
> There was a change for icons/iconnamed done on class EpSelection
>
> 1. this change needs to be done in epiceas repository as well (?)
> 2. one call is wrong (EpSelection>>#populateMenu) :
>
> icon: (self iconNamed: #smallSaveAsIcon);
> instead of
> icon: (self icons iconNamed: #smallSaveAsIcon);
>
Sept. 21, 2016