Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- November
- October
- 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
- 3 participants
- 144636 messages
Re: [Pharo-dev] vm crash in SmalltalkImage>garbageCollect
by Mariano Martinez Peck
Could you upload somewhere the image ready for running the test and make it
crash?
thanks
On Mon, Nov 23, 2015 at 8:32 PM, Mariano Martinez Peck <
marianopeck(a)gmail.com> wrote:
> Mmmm I tried in 50463 and I cannot reproduce the crash with your steps. I
> am using latest VM and on OSX Capitan.
>
> And you?
>
> On Mon, Nov 23, 2015 at 7:27 PM, Andrei Chis <chisvasileandrei(a)gmail.com>
> wrote:
>
>>
>> On Mon, Nov 23, 2015 at 9:55 PM, Mariano Martinez Peck <
>> marianopeck(a)gmail.com> wrote:
>>
>>> Can you confirm the image is later than 50454?
>>>
>>
>> Yes, it is (50461).
>> I can reproduce it up to 50388 as in 50387 due to some changes in the
>> theming mechanism I can no longer load the configuration by default.
>>
>>
>>
>>> I was thinking if it could be a VM crash because of this issue:
>>> https://pharo.fogbugz.com/f/cases/13854/
>>>
>>> Cheers,
>>>
>>> On Mon, Nov 23, 2015 at 5:07 PM, Andrei Chis <chisvasileandrei(a)gmail.com
>>> > wrote:
>>>
>>>> So it's not just me. Thanks
>>>>
>>>> Cheers,
>>>> Andrei
>>>>
>>>> On Nov 23, 2015 5:44 PM, "Max Leske" <maxleske(a)gmail.com> wrote:
>>>> >
>>>> > Reprocucible as per your steps:
>>>> >
>>>> > Segmentation fault Mon Nov 23 17:42:47 2015
>>>> >
>>>> >
>>>> > https://github.com/pharo-project/pharo-vm.git Commit:
>>>> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
>>>> By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
>>>> >
>>>> > C stack backtrace:
>>>> > 0 Pharo 0x0004cacf reportStackState +
>>>> 159
>>>> >
>>>> >
>>>> > Smalltalk stack dump:
>>>> > 0xbffbe11c M SmalltalkImage>garbageCollect 0x1fd49e30: a(n)
>>>> SmalltalkImage
>>>> > 0xbffbe140 I GTExampleOrganizer>reset 0x216acc5c: a(n)
>>>> GTExampleOrganizer
>>>> > 0x216ad57c is not a context
>>>> >
>>>> > Most recent primitives
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > perform:with:
>>>> > fractionPart
>>>> > truncated
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > perform:with:
>>>> > fractionPart
>>>> > truncated
>>>> > perform:with:
>>>> > fractionPart
>>>> > truncated
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > basicNew
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > shallowCopy
>>>> > new
>>>> > new:
>>>> > new:
>>>> > basicNew
>>>> > basicNew
>>>> > new:
>>>> > basicNew
>>>> > new:
>>>> > replaceFrom:to:with:startingAt:
>>>> > new:
>>>> > basicNew
>>>> > new:
>>>> > replaceFrom:to:with:startingAt:
>>>> > new:
>>>> > basicNew
>>>> > @
>>>> > new:
>>>> > at:put:
>>>> > at:put:
>>>> > perform:with:
>>>> > perform:with:
>>>> > perform:
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > new:
>>>> > at:put:
>>>> > at:put:
>>>> > perform:with:
>>>> > perform:with:
>>>> > perform:
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > new
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > new:
>>>> > at:put:
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > new:
>>>> > at:put:
>>>> > at:put:
>>>> > at:put:
>>>> > at:put:
>>>> > new:
>>>> > @
>>>> > at:put:
>>>> > @
>>>> > at:put:
>>>> > @
>>>> > at:put:
>>>> > @
>>>> > at:put:
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > shallowCopy
>>>> > shallowCopy
>>>> > @
>>>> > @
>>>> > new:
>>>> > at:put:
>>>> > at:put:
>>>> > at:put:
>>>> > at:put:
>>>> > new:
>>>> > @
>>>> > at:put:
>>>> > @
>>>> > at:put:
>>>> > @
>>>> > at:put:
>>>> > @
>>>> > at:put:
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > @
>>>> > @
>>>> > basicNew
>>>> > @
>>>> > @
>>>> > perform:
>>>> > basicNew
>>>> > new:
>>>> > basicNew
>>>> > new:
>>>> > basicNew
>>>> > new:
>>>> > shallowCopy
>>>> > shallowCopy
>>>> > primUTCMicrosecondsClock
>>>> > //
>>>> > basicNew
>>>> > basicNew
>>>> > new:
>>>> > at:put:
>>>> > at:put:
>>>> > at:put:
>>>> > at:put:
>>>> > value
>>>> > valueNoContextSwitch
>>>> > basicNew
>>>> > new:
>>>> > basicNew
>>>> > new:
>>>> > new:
>>>> > basicNew
>>>> > new:
>>>> > replaceFrom:to:with:startingAt:
>>>> > primitiveGarbageCollect
>>>> > **IncrementalGC**
>>>> > **FullGC**
>>>> > garbageCollectMost
>>>> > **IncrementalGC**
>>>> > basicNew
>>>> > new:
>>>> > someInstance
>>>> > basicNew
>>>> > new:
>>>> > someInstance
>>>> > basicNew
>>>> > new:
>>>> > someInstance
>>>> > new:
>>>> > basicNew
>>>> > new:
>>>> > replaceFrom:to:with:startingAt:
>>>> > primitiveGarbageCollect
>>>> > **IncrementalGC**
>>>> > **FullGC**
>>>> >
>>>> > (Segmentation fault)
>>>> > ./pharo: line 11: 16509 Abort trap: 6
>>>> "$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@â
>>>> >
>>>> >> On 23 Nov 2015, at 17:30, Andrei Chis <chisvasileandrei(a)gmail.com>
>>>> wrote:
>>>> >>
>>>> >> The image is small 25.4 MB.
>>>> >>
>>>> >> First I'd like to know if this can be reproduced by others.
>>>> >>
>>>> >> On Mon, Nov 23, 2015 at 5:09 PM, Mariano Martinez Peck <
>>>> marianopeck(a)gmail.com> wrote:
>>>> >>>
>>>> >>> What is the size of the .image when you are about to run GC?
>>>> >>>
>>>> >>> On Mon, Nov 23, 2015 at 12:59 PM, Andrei Chis <
>>>> chisvasileandrei(a)gmail.com> wrote:
>>>> >>>>
>>>> >>>> Hi,
>>>> >>>>
>>>> >>>> With both the latest and stable vm I have an use case in which the
>>>> vm crashed in SmalltalkImage>>garbageCollect.
>>>> >>>>
>>>> >>>> To set up an image that exhibits the failure , execute this with
>>>> the latest pharo version:
>>>> >>>>
>>>> >>>> /pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'.
>>>> 'Pharo'. 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }.
>>>> { 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>>>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>>>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>>>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>>>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>>>> load ]."
>>>> >>>>
>>>> >>>> ./pharo Pharo.image config
>>>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>>>> ConfigurationOfGToolkitCore --install=3.2
>>>> >>>>
>>>> >>>> Then attempting to run the following code triggers the failure:
>>>> >>>>
>>>> >>>> ./pharo Pharo.image eval --save "TestRunner open model
>>>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>>>> 'GTInspectorExamplesTest'; runAll"
>>>> >>>>
>>>> >>>> Based on the trace below the failure happens when the
>>>> test GTInspectorExamplesTest calls 'Smalltalk>>garbageCollect' in the setUp
>>>> method.
>>>> >>>>
>>>> >>>> That call can be removed, however, in other runs the failure
>>>> happens in other methods calling Smalltalk>>garbageCollect.
>>>> >>>>
>>>> >>>> Is it possible that this is a bug with the image (some broken
>>>> object) or is it a vm bug?
>>>> >>>>
>>>> >>>> Cheers,
>>>> >>>>
>>>> >>>> Andrei
>>>> >>>>
>>>> >>>>
>>>> >>>>
>>>> >>>> andrei$ ./pharo Pharo.image eval --save "{ {
>>>> 'ConfigurationOfRubric'. 'Pharo'. 'Rubric' }. {
>>>> 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }. {
>>>> 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>>>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>>>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>>>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>>>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>>>> load ]."
>>>> >>>>
>>>> >>>> andrei$ ./pharo Pharo.image config
>>>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>>>> ConfigurationOfGToolkitCore --install=3.2
>>>> >>>>
>>>> >>>> andrei$ ./pharo Pharo.image eval --save "TestRunner open model
>>>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>>>> 'GTInspectorExamplesTest'; runAll"
>>>> >>>>
>>>> >>>>
>>>> >>>> Segmentation fault Mon Nov 23 16:48:36 2015
>>>> >>>>
>>>> >>>>
>>>> >>>>
>>>> >>>> https://github.com/pharo-project/pharo-vm.git Commit:
>>>> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
>>>> By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
>>>> >>>>
>>>> >>>>
>>>> >>>> C stack backtrace:
>>>> >>>>
>>>> >>>> 0 Pharo 0x0004cacf
>>>> reportStackState + 159
>>>> >>>>
>>>> >>>>
>>>> >>>>
>>>> >>>> Smalltalk stack dump:
>>>> >>>>
>>>> >>>> 0xbffbf1a0 M SmalltalkImage>garbageCollect 0x1fd49e30: a(n)
>>>> SmalltalkImage
>>>> >>>>
>>>> >>>> 0xbffbf1c0 I GTInspectorExamplesTest>setUp 0x2126bc80: a(n)
>>>> GTInspectorExamplesTest
>>>> >>>>
>>>> >>>> 0x2126cb90 is not a context
>>>> >>>>
>>>> >>>>
>>>> >>>> Most recent primitives
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> shallowCopy
>>>> >>>>
>>>> >>>> new
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> replaceFrom:to:with:startingAt:
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> replaceFrom:to:with:startingAt:
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> perform:with:
>>>> >>>>
>>>> >>>> perform:with:
>>>> >>>>
>>>> >>>> perform:
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> perform:with:
>>>> >>>>
>>>> >>>> perform:with:
>>>> >>>>
>>>> >>>> perform:
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> new
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> shallowCopy
>>>> >>>>
>>>> >>>> shallowCopy
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> @
>>>> >>>>
>>>> >>>> perform:
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> shallowCopy
>>>> >>>>
>>>> >>>> shallowCopy
>>>> >>>>
>>>> >>>> primUTCMicrosecondsClock
>>>> >>>>
>>>> >>>> //
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> value
>>>> >>>>
>>>> >>>> valueNoContextSwitch
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> replaceFrom:to:with:startingAt:
>>>> >>>>
>>>> >>>> primitiveGarbageCollect
>>>> >>>>
>>>> >>>> **IncrementalGC**
>>>> >>>>
>>>> >>>> **FullGC**
>>>> >>>>
>>>> >>>> garbageCollectMost
>>>> >>>>
>>>> >>>> **IncrementalGC**
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> someInstance
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> someInstance
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> someInstance
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> replaceFrom:to:with:startingAt:
>>>> >>>>
>>>> >>>> primitiveGarbageCollect
>>>> >>>>
>>>> >>>> **IncrementalGC**
>>>> >>>>
>>>> >>>> **FullGC**
>>>> >>>>
>>>> >>>> garbageCollectMost
>>>> >>>>
>>>> >>>> **IncrementalGC**
>>>> >>>>
>>>> >>>> wait
>>>> >>>>
>>>> >>>> shallowCopy
>>>> >>>>
>>>> >>>> shallowCopy
>>>> >>>>
>>>> >>>> signal
>>>> >>>>
>>>> >>>> wait
>>>> >>>>
>>>> >>>> shallowCopy
>>>> >>>>
>>>> >>>> shallowCopy
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> signal
>>>> >>>>
>>>> >>>> wait
>>>> >>>>
>>>> >>>> shallowCopy
>>>> >>>>
>>>> >>>> shallowCopy
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> at:put:
>>>> >>>>
>>>> >>>> signal
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> basicNew
>>>> >>>>
>>>> >>>> new:
>>>> >>>>
>>>> >>>> replaceFrom:to:with:startingAt:
>>>> >>>>
>>>> >>>> primitiveGarbageCollect
>>>> >>>>
>>>> >>>> **IncrementalGC**
>>>> >>>>
>>>> >>>> **FullGC**
>>>> >>>>
>>>> >>>>
>>>> >>>> (Segmentation fault)
>>>> >>>>
>>>> >>>> ./pharo: line 11: 5224 Abort trap: 6
>>>> "$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@"
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>> --
>>>> >>> Mariano
>>>> >>> http://marianopeck.wordpress.com
>>>> >>
>>>> >>
>>>> >
>>>>
>>>
>>>
>>>
>>> --
>>> Mariano
>>> http://marianopeck.wordpress.com
>>>
>>
>>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
--
Mariano
http://marianopeck.wordpress.com
Nov. 23, 2015
Re: [Pharo-dev] vm crash in SmalltalkImage>garbageCollect
by Mariano Martinez Peck
Mmmm I tried in 50463 and I cannot reproduce the crash with your steps. I
am using latest VM and on OSX Capitan.
And you?
On Mon, Nov 23, 2015 at 7:27 PM, Andrei Chis <chisvasileandrei(a)gmail.com>
wrote:
>
> On Mon, Nov 23, 2015 at 9:55 PM, Mariano Martinez Peck <
> marianopeck(a)gmail.com> wrote:
>
>> Can you confirm the image is later than 50454?
>>
>
> Yes, it is (50461).
> I can reproduce it up to 50388 as in 50387 due to some changes in the
> theming mechanism I can no longer load the configuration by default.
>
>
>
>> I was thinking if it could be a VM crash because of this issue:
>> https://pharo.fogbugz.com/f/cases/13854/
>>
>> Cheers,
>>
>> On Mon, Nov 23, 2015 at 5:07 PM, Andrei Chis <chisvasileandrei(a)gmail.com>
>> wrote:
>>
>>> So it's not just me. Thanks
>>>
>>> Cheers,
>>> Andrei
>>>
>>> On Nov 23, 2015 5:44 PM, "Max Leske" <maxleske(a)gmail.com> wrote:
>>> >
>>> > Reprocucible as per your steps:
>>> >
>>> > Segmentation fault Mon Nov 23 17:42:47 2015
>>> >
>>> >
>>> > https://github.com/pharo-project/pharo-vm.git Commit:
>>> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
>>> By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
>>> >
>>> > C stack backtrace:
>>> > 0 Pharo 0x0004cacf reportStackState +
>>> 159
>>> >
>>> >
>>> > Smalltalk stack dump:
>>> > 0xbffbe11c M SmalltalkImage>garbageCollect 0x1fd49e30: a(n)
>>> SmalltalkImage
>>> > 0xbffbe140 I GTExampleOrganizer>reset 0x216acc5c: a(n)
>>> GTExampleOrganizer
>>> > 0x216ad57c is not a context
>>> >
>>> > Most recent primitives
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > perform:with:
>>> > fractionPart
>>> > truncated
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > perform:with:
>>> > fractionPart
>>> > truncated
>>> > perform:with:
>>> > fractionPart
>>> > truncated
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > basicNew
>>> > basicNew
>>> > basicNew
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > shallowCopy
>>> > new
>>> > new:
>>> > new:
>>> > basicNew
>>> > basicNew
>>> > new:
>>> > basicNew
>>> > new:
>>> > replaceFrom:to:with:startingAt:
>>> > new:
>>> > basicNew
>>> > new:
>>> > replaceFrom:to:with:startingAt:
>>> > new:
>>> > basicNew
>>> > @
>>> > new:
>>> > at:put:
>>> > at:put:
>>> > perform:with:
>>> > perform:with:
>>> > perform:
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > new:
>>> > at:put:
>>> > at:put:
>>> > perform:with:
>>> > perform:with:
>>> > perform:
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > new
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > new:
>>> > at:put:
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > @
>>> > @
>>> > new:
>>> > at:put:
>>> > at:put:
>>> > at:put:
>>> > at:put:
>>> > new:
>>> > @
>>> > at:put:
>>> > @
>>> > at:put:
>>> > @
>>> > at:put:
>>> > @
>>> > at:put:
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > shallowCopy
>>> > shallowCopy
>>> > @
>>> > @
>>> > new:
>>> > at:put:
>>> > at:put:
>>> > at:put:
>>> > at:put:
>>> > new:
>>> > @
>>> > at:put:
>>> > @
>>> > at:put:
>>> > @
>>> > at:put:
>>> > @
>>> > at:put:
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > @
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > @
>>> > @
>>> > basicNew
>>> > @
>>> > @
>>> > perform:
>>> > basicNew
>>> > new:
>>> > basicNew
>>> > new:
>>> > basicNew
>>> > new:
>>> > shallowCopy
>>> > shallowCopy
>>> > primUTCMicrosecondsClock
>>> > //
>>> > basicNew
>>> > basicNew
>>> > new:
>>> > at:put:
>>> > at:put:
>>> > at:put:
>>> > at:put:
>>> > value
>>> > valueNoContextSwitch
>>> > basicNew
>>> > new:
>>> > basicNew
>>> > new:
>>> > new:
>>> > basicNew
>>> > new:
>>> > replaceFrom:to:with:startingAt:
>>> > primitiveGarbageCollect
>>> > **IncrementalGC**
>>> > **FullGC**
>>> > garbageCollectMost
>>> > **IncrementalGC**
>>> > basicNew
>>> > new:
>>> > someInstance
>>> > basicNew
>>> > new:
>>> > someInstance
>>> > basicNew
>>> > new:
>>> > someInstance
>>> > new:
>>> > basicNew
>>> > new:
>>> > replaceFrom:to:with:startingAt:
>>> > primitiveGarbageCollect
>>> > **IncrementalGC**
>>> > **FullGC**
>>> >
>>> > (Segmentation fault)
>>> > ./pharo: line 11: 16509 Abort trap: 6
>>> "$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@â
>>> >
>>> >> On 23 Nov 2015, at 17:30, Andrei Chis <chisvasileandrei(a)gmail.com>
>>> wrote:
>>> >>
>>> >> The image is small 25.4 MB.
>>> >>
>>> >> First I'd like to know if this can be reproduced by others.
>>> >>
>>> >> On Mon, Nov 23, 2015 at 5:09 PM, Mariano Martinez Peck <
>>> marianopeck(a)gmail.com> wrote:
>>> >>>
>>> >>> What is the size of the .image when you are about to run GC?
>>> >>>
>>> >>> On Mon, Nov 23, 2015 at 12:59 PM, Andrei Chis <
>>> chisvasileandrei(a)gmail.com> wrote:
>>> >>>>
>>> >>>> Hi,
>>> >>>>
>>> >>>> With both the latest and stable vm I have an use case in which the
>>> vm crashed in SmalltalkImage>>garbageCollect.
>>> >>>>
>>> >>>> To set up an image that exhibits the failure , execute this with
>>> the latest pharo version:
>>> >>>>
>>> >>>> /pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'.
>>> 'Pharo'. 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }.
>>> { 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>>> load ]."
>>> >>>>
>>> >>>> ./pharo Pharo.image config
>>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>>> ConfigurationOfGToolkitCore --install=3.2
>>> >>>>
>>> >>>> Then attempting to run the following code triggers the failure:
>>> >>>>
>>> >>>> ./pharo Pharo.image eval --save "TestRunner open model
>>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>>> 'GTInspectorExamplesTest'; runAll"
>>> >>>>
>>> >>>> Based on the trace below the failure happens when the
>>> test GTInspectorExamplesTest calls 'Smalltalk>>garbageCollect' in the setUp
>>> method.
>>> >>>>
>>> >>>> That call can be removed, however, in other runs the failure
>>> happens in other methods calling Smalltalk>>garbageCollect.
>>> >>>>
>>> >>>> Is it possible that this is a bug with the image (some broken
>>> object) or is it a vm bug?
>>> >>>>
>>> >>>> Cheers,
>>> >>>>
>>> >>>> Andrei
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>> andrei$ ./pharo Pharo.image eval --save "{ {
>>> 'ConfigurationOfRubric'. 'Pharo'. 'Rubric' }. {
>>> 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }. {
>>> 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>>> load ]."
>>> >>>>
>>> >>>> andrei$ ./pharo Pharo.image config
>>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>>> ConfigurationOfGToolkitCore --install=3.2
>>> >>>>
>>> >>>> andrei$ ./pharo Pharo.image eval --save "TestRunner open model
>>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>>> 'GTInspectorExamplesTest'; runAll"
>>> >>>>
>>> >>>>
>>> >>>> Segmentation fault Mon Nov 23 16:48:36 2015
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>> https://github.com/pharo-project/pharo-vm.git Commit:
>>> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
>>> By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
>>> >>>>
>>> >>>>
>>> >>>> C stack backtrace:
>>> >>>>
>>> >>>> 0 Pharo 0x0004cacf reportStackState
>>> + 159
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>> Smalltalk stack dump:
>>> >>>>
>>> >>>> 0xbffbf1a0 M SmalltalkImage>garbageCollect 0x1fd49e30: a(n)
>>> SmalltalkImage
>>> >>>>
>>> >>>> 0xbffbf1c0 I GTInspectorExamplesTest>setUp 0x2126bc80: a(n)
>>> GTInspectorExamplesTest
>>> >>>>
>>> >>>> 0x2126cb90 is not a context
>>> >>>>
>>> >>>>
>>> >>>> Most recent primitives
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> shallowCopy
>>> >>>>
>>> >>>> new
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> replaceFrom:to:with:startingAt:
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> replaceFrom:to:with:startingAt:
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> perform:with:
>>> >>>>
>>> >>>> perform:with:
>>> >>>>
>>> >>>> perform:
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> perform:with:
>>> >>>>
>>> >>>> perform:with:
>>> >>>>
>>> >>>> perform:
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> new
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> shallowCopy
>>> >>>>
>>> >>>> shallowCopy
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> @
>>> >>>>
>>> >>>> perform:
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> shallowCopy
>>> >>>>
>>> >>>> shallowCopy
>>> >>>>
>>> >>>> primUTCMicrosecondsClock
>>> >>>>
>>> >>>> //
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> value
>>> >>>>
>>> >>>> valueNoContextSwitch
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> replaceFrom:to:with:startingAt:
>>> >>>>
>>> >>>> primitiveGarbageCollect
>>> >>>>
>>> >>>> **IncrementalGC**
>>> >>>>
>>> >>>> **FullGC**
>>> >>>>
>>> >>>> garbageCollectMost
>>> >>>>
>>> >>>> **IncrementalGC**
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> someInstance
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> someInstance
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> someInstance
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> replaceFrom:to:with:startingAt:
>>> >>>>
>>> >>>> primitiveGarbageCollect
>>> >>>>
>>> >>>> **IncrementalGC**
>>> >>>>
>>> >>>> **FullGC**
>>> >>>>
>>> >>>> garbageCollectMost
>>> >>>>
>>> >>>> **IncrementalGC**
>>> >>>>
>>> >>>> wait
>>> >>>>
>>> >>>> shallowCopy
>>> >>>>
>>> >>>> shallowCopy
>>> >>>>
>>> >>>> signal
>>> >>>>
>>> >>>> wait
>>> >>>>
>>> >>>> shallowCopy
>>> >>>>
>>> >>>> shallowCopy
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> signal
>>> >>>>
>>> >>>> wait
>>> >>>>
>>> >>>> shallowCopy
>>> >>>>
>>> >>>> shallowCopy
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> at:put:
>>> >>>>
>>> >>>> signal
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> basicNew
>>> >>>>
>>> >>>> new:
>>> >>>>
>>> >>>> replaceFrom:to:with:startingAt:
>>> >>>>
>>> >>>> primitiveGarbageCollect
>>> >>>>
>>> >>>> **IncrementalGC**
>>> >>>>
>>> >>>> **FullGC**
>>> >>>>
>>> >>>>
>>> >>>> (Segmentation fault)
>>> >>>>
>>> >>>> ./pharo: line 11: 5224 Abort trap: 6
>>> "$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@"
>>> >>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Mariano
>>> >>> http://marianopeck.wordpress.com
>>> >>
>>> >>
>>> >
>>>
>>
>>
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>
>
--
Mariano
http://marianopeck.wordpress.com
Nov. 23, 2015
Debugging a failing test doesn't include the full stack
by Esteban A. Maringolo
I'm trying to debug a failing test case in Pharo 5, but for some reason in
certain tests I can't see the full stack, so basically I can't fix nor
diagnose the failing test within the debugger because I only get the assert
notification.
This doesn't happen in Pharo 4, there seems to be a refactoring of the
TestCase hierarchy, but I don't know how it affects the exception handling,
which in the case of Glorp seems to not be very orthodox.
Regards!
â
Esteban A. Maringolo
Nov. 23, 2015
Re: [Pharo-dev] problem using curl and wget in zero-conf
by Dale Henrichs
If it matters, I'm downloading the pharo30 vm: get.pharo.org/vm30
On 11/23/2015 03:25 PM, Dale Henrichs wrote:
> I've been using zero-conf scripts to download the pharo vm for a while
> and occasionally the download fails to install the vm in the pharo-vm
> directory .... silently ..... with no clue as to what happened. even
> worse the exit status is zero so the failure isn't noticed until much
> later on in my install when an attempt is made to actually use the vm
> .... I do know that when I see these failures the pharo-vm does get
> created but is empty ...
>
> I got another failure today and figured that I would dig into this on
> my end to see if I could understand what might be going on ....
>
> The section of the zero-conf script that is suspect is the following:
>
> mkdir $VM_DIR
> $DOWNLOAD_TO$VM_DIR/vm.zip $VM_URL
>
>
> After the $VM_DIR is created (which I know happens), the $DOWNLOAD_TO
> script is run. Recently, I learned that a side effect of using the
> --silent option for curl is that error messages are also suppressed
> and I see that for curl, the `--silent` option is being used:
>
> if [[ `which curl 2> /dev/null` ]]; then
> DOWNLOAD="curl --silent --location --compressed ";
> DOWNLOAD_TO="$DOWNLOAD --output ";
> elif [[ `which wget 2> /dev/null` ]]; then
> DOWNLOAD_TO="wget --quiet --output-document=";
> DOWNLOAD="$DOWNLOAD_TO-";
> else
> echo "Please install curl or wget on your machine";
> exit 1
> fi
>
>
> For curl if you want to turn off the progress meter (a good thing) and
> continue to report errors, you need to use --show-error in conjunction
> with --silent (as described in the man page)
>
> I think the same thing applies to wget, --quiet turns off error
> messages and progress .... you probably should be using --no-verbose
> to continue to get error messages ...
>
> Dale
>
Nov. 23, 2015
problem using curl and wget in zero-conf
by Dale Henrichs
I've been using zero-conf scripts to download the pharo vm for a while
and occasionally the download fails to install the vm in the pharo-vm
directory .... silently ..... with no clue as to what happened. even
worse the exit status is zero so the failure isn't noticed until much
later on in my install when an attempt is made to actually use the vm
.... I do know that when I see these failures the pharo-vm does get
created but is empty ...
I got another failure today and figured that I would dig into this on my
end to see if I could understand what might be going on ....
The section of the zero-conf script that is suspect is the following:
mkdir $VM_DIR
$DOWNLOAD_TO$VM_DIR/vm.zip $VM_URL
After the $VM_DIR is created (which I know happens), the $DOWNLOAD_TO
script is run. Recently, I learned that a side effect of using the
--silent option for curl is that error messages are also suppressed and
I see that for curl, the `--silent` option is being used:
if [[ `which curl 2> /dev/null` ]]; then
DOWNLOAD="curl --silent --location --compressed ";
DOWNLOAD_TO="$DOWNLOAD --output ";
elif [[ `which wget 2> /dev/null` ]]; then
DOWNLOAD_TO="wget --quiet --output-document=";
DOWNLOAD="$DOWNLOAD_TO-";
else
echo "Please install curl or wget on your machine";
exit 1
fi
For curl if you want to turn off the progress meter (a good thing) and
continue to report errors, you need to use --show-error in conjunction
with --silent (as described in the man page)
I think the same thing applies to wget, --quiet turns off error messages
and progress .... you probably should be using --no-verbose to continue
to get error messages ...
Dale
Nov. 23, 2015
Re: [Pharo-dev] test coverage for String
by sheridan@sheridan-mahoney.com
Hi Alexandre,
Thanks for the reply - I was able to get things working. With regard to
test coverage for String, I just wanted to let you know I'm adding tests
in this area (just to hopefully prevent duplicate efforts...).
Cheers,
Sheridan
------------------------------
[ For people not aware of Hapao: Hapao is a visual test coverage tool
for Pharo. More info on:
http://bergel.eu/download/papers/Berg12c-HapaoSCP.pdf [37] ]
Hi Sheridan,
How did you load Hapao? Roassal seems to be missing. The following
should work:
Gofer it
smalltalkhubUser: 'ObjectProfile' project: 'Spy2';
configurationOf: 'Spy2';
loadStable.
I can get the coverage of the class String. Here is the result by the
way:
https://dl.dropboxusercontent.com/u/31543901/TMP/StringCoverage/index.html
[38]
Interesting to see that, despite all the unit test that uses String,
String is not even 50% covered. I have attached the html coverage report
to this email.
Cheers,
Alexandre
Nov. 23, 2015
Re: [Pharo-dev] Change in String>>#expandMacros between Pharo v4 and v5
by Esteban A. Maringolo
2015-11-23 17:57 GMT-03:00 Nicolai Hess <nicolaihess(a)gmail.com>:
>
>
> 2015-11-23 21:53 GMT+01:00 Esteban A. Maringolo <emaringolo(a)gmail.com>:
>>
>> Hi,
>>
>> I'm testing the new glorp port in Pharo 5 and got some failing errors
>> related with #expandMacros that don't fail in Pharo 4.
>>
>> Does somebody know why this works in Pharo 4 but not in Pharo 5?
>
>
> Maybe this one:
> 16863 Make expandMacros more consistent with general use
Well... it makes sense.
I found there is a #withUnixLineEndings and I'm using this, but there
should be a #withOSLineEndings using also OSPlatform current
lineEnding.
Regards!
Esteban A. Maringolo
Nov. 23, 2015
Re: [Pharo-dev] vm crash in SmalltalkImage>garbageCollect
by Andrei Chis
On Mon, Nov 23, 2015 at 9:55 PM, Mariano Martinez Peck <
marianopeck(a)gmail.com> wrote:
> Can you confirm the image is later than 50454?
>
Yes, it is (50461).
I can reproduce it up to 50388 as in 50387 due to some changes in the
theming mechanism I can no longer load the configuration by default.
> I was thinking if it could be a VM crash because of this issue:
> https://pharo.fogbugz.com/f/cases/13854/
>
> Cheers,
>
> On Mon, Nov 23, 2015 at 5:07 PM, Andrei Chis <chisvasileandrei(a)gmail.com>
> wrote:
>
>> So it's not just me. Thanks
>>
>> Cheers,
>> Andrei
>>
>> On Nov 23, 2015 5:44 PM, "Max Leske" <maxleske(a)gmail.com> wrote:
>> >
>> > Reprocucible as per your steps:
>> >
>> > Segmentation fault Mon Nov 23 17:42:47 2015
>> >
>> >
>> > https://github.com/pharo-project/pharo-vm.git Commit:
>> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
>> By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
>> >
>> > C stack backtrace:
>> > 0 Pharo 0x0004cacf reportStackState +
>> 159
>> >
>> >
>> > Smalltalk stack dump:
>> > 0xbffbe11c M SmalltalkImage>garbageCollect 0x1fd49e30: a(n)
>> SmalltalkImage
>> > 0xbffbe140 I GTExampleOrganizer>reset 0x216acc5c: a(n)
>> GTExampleOrganizer
>> > 0x216ad57c is not a context
>> >
>> > Most recent primitives
>> > @
>> > @
>> > @
>> > @
>> > @
>> > perform:with:
>> > fractionPart
>> > truncated
>> > @
>> > basicNew
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > perform:with:
>> > fractionPart
>> > truncated
>> > perform:with:
>> > fractionPart
>> > truncated
>> > @
>> > basicNew
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > basicNew
>> > basicNew
>> > basicNew
>> > @
>> > @
>> > @
>> > @
>> > @
>> > shallowCopy
>> > new
>> > new:
>> > new:
>> > basicNew
>> > basicNew
>> > new:
>> > basicNew
>> > new:
>> > replaceFrom:to:with:startingAt:
>> > new:
>> > basicNew
>> > new:
>> > replaceFrom:to:with:startingAt:
>> > new:
>> > basicNew
>> > @
>> > new:
>> > at:put:
>> > at:put:
>> > perform:with:
>> > perform:with:
>> > perform:
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > basicNew
>> > @
>> > new:
>> > at:put:
>> > at:put:
>> > perform:with:
>> > perform:with:
>> > perform:
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > new
>> > @
>> > @
>> > @
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > new:
>> > at:put:
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > @
>> > @
>> > new:
>> > at:put:
>> > at:put:
>> > at:put:
>> > at:put:
>> > new:
>> > @
>> > at:put:
>> > @
>> > at:put:
>> > @
>> > at:put:
>> > @
>> > at:put:
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > @
>> > @
>> > @
>> > shallowCopy
>> > shallowCopy
>> > @
>> > @
>> > new:
>> > at:put:
>> > at:put:
>> > at:put:
>> > at:put:
>> > new:
>> > @
>> > at:put:
>> > @
>> > at:put:
>> > @
>> > at:put:
>> > @
>> > at:put:
>> > @
>> > @
>> > @
>> > @
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > @
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > @
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > @
>> > @
>> > basicNew
>> > @
>> > @
>> > perform:
>> > basicNew
>> > new:
>> > basicNew
>> > new:
>> > basicNew
>> > new:
>> > shallowCopy
>> > shallowCopy
>> > primUTCMicrosecondsClock
>> > //
>> > basicNew
>> > basicNew
>> > new:
>> > at:put:
>> > at:put:
>> > at:put:
>> > at:put:
>> > value
>> > valueNoContextSwitch
>> > basicNew
>> > new:
>> > basicNew
>> > new:
>> > new:
>> > basicNew
>> > new:
>> > replaceFrom:to:with:startingAt:
>> > primitiveGarbageCollect
>> > **IncrementalGC**
>> > **FullGC**
>> > garbageCollectMost
>> > **IncrementalGC**
>> > basicNew
>> > new:
>> > someInstance
>> > basicNew
>> > new:
>> > someInstance
>> > basicNew
>> > new:
>> > someInstance
>> > new:
>> > basicNew
>> > new:
>> > replaceFrom:to:with:startingAt:
>> > primitiveGarbageCollect
>> > **IncrementalGC**
>> > **FullGC**
>> >
>> > (Segmentation fault)
>> > ./pharo: line 11: 16509 Abort trap: 6
>> "$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@â
>> >
>> >> On 23 Nov 2015, at 17:30, Andrei Chis <chisvasileandrei(a)gmail.com>
>> wrote:
>> >>
>> >> The image is small 25.4 MB.
>> >>
>> >> First I'd like to know if this can be reproduced by others.
>> >>
>> >> On Mon, Nov 23, 2015 at 5:09 PM, Mariano Martinez Peck <
>> marianopeck(a)gmail.com> wrote:
>> >>>
>> >>> What is the size of the .image when you are about to run GC?
>> >>>
>> >>> On Mon, Nov 23, 2015 at 12:59 PM, Andrei Chis <
>> chisvasileandrei(a)gmail.com> wrote:
>> >>>>
>> >>>> Hi,
>> >>>>
>> >>>> With both the latest and stable vm I have an use case in which the
>> vm crashed in SmalltalkImage>>garbageCollect.
>> >>>>
>> >>>> To set up an image that exhibits the failure , execute this with the
>> latest pharo version:
>> >>>>
>> >>>> /pharo Pharo.image eval --save "{ { 'ConfigurationOfRubric'.
>> 'Pharo'. 'Rubric' }. { 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }.
>> { 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>> load ]."
>> >>>>
>> >>>> ./pharo Pharo.image config
>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>> ConfigurationOfGToolkitCore --install=3.2
>> >>>>
>> >>>> Then attempting to run the following code triggers the failure:
>> >>>>
>> >>>> ./pharo Pharo.image eval --save "TestRunner open model
>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>> 'GTInspectorExamplesTest'; runAll"
>> >>>>
>> >>>> Based on the trace below the failure happens when the
>> test GTInspectorExamplesTest calls 'Smalltalk>>garbageCollect' in the setUp
>> method.
>> >>>>
>> >>>> That call can be removed, however, in other runs the failure happens
>> in other methods calling Smalltalk>>garbageCollect.
>> >>>>
>> >>>> Is it possible that this is a bug with the image (some broken
>> object) or is it a vm bug?
>> >>>>
>> >>>> Cheers,
>> >>>>
>> >>>> Andrei
>> >>>>
>> >>>>
>> >>>>
>> >>>> andrei$ ./pharo Pharo.image eval --save "{ {
>> 'ConfigurationOfRubric'. 'Pharo'. 'Rubric' }. {
>> 'ConfigurationOfGlamourCore'. 'Moose'. 'Glamour' }. {
>> 'ConfigurationOfGTInspectorCore'. 'Moose'. 'GToolkit' }. {
>> 'ConfigurationOfGTPlaygroundCore'. 'Moose'. 'GToolkit' }. {
>> 'ConfigurationOfGTEventRecorder'. 'Moose'. 'GToolkit' }. {
>> 'ConfigurationOfGTSpotter'. 'Moose'. 'GToolkit' }. } do: [ :spec | Gofer
>> new smalltalkhubUser: spec second project: spec third; package: spec first;
>> load ]."
>> >>>>
>> >>>> andrei$ ./pharo Pharo.image config
>> http://www.smalltalkhub.com/mc/Pharo/Pharo50Inbox/main
>> ConfigurationOfGToolkitCore --install=3.2
>> >>>>
>> >>>> andrei$ ./pharo Pharo.image eval --save "TestRunner open model
>> packageSearchUpdate: 'gt-tests-inspector'; classSearchUpdate:
>> 'GTInspectorExamplesTest'; runAll"
>> >>>>
>> >>>>
>> >>>> Segmentation fault Mon Nov 23 16:48:36 2015
>> >>>>
>> >>>>
>> >>>>
>> >>>> https://github.com/pharo-project/pharo-vm.git Commit:
>> 28d077d8df494ce050ca42c97c892471e8b8740c Date: 2015-10-16 12:02:43 +0200
>> By: Esteban Lorenzano <estebanlm(a)gmail.com> Jenkins build #15016
>> >>>>
>> >>>>
>> >>>> C stack backtrace:
>> >>>>
>> >>>> 0 Pharo 0x0004cacf reportStackState
>> + 159
>> >>>>
>> >>>>
>> >>>>
>> >>>> Smalltalk stack dump:
>> >>>>
>> >>>> 0xbffbf1a0 M SmalltalkImage>garbageCollect 0x1fd49e30: a(n)
>> SmalltalkImage
>> >>>>
>> >>>> 0xbffbf1c0 I GTInspectorExamplesTest>setUp 0x2126bc80: a(n)
>> GTInspectorExamplesTest
>> >>>>
>> >>>> 0x2126cb90 is not a context
>> >>>>
>> >>>>
>> >>>> Most recent primitives
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> shallowCopy
>> >>>>
>> >>>> new
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> replaceFrom:to:with:startingAt:
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> replaceFrom:to:with:startingAt:
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> perform:with:
>> >>>>
>> >>>> perform:with:
>> >>>>
>> >>>> perform:
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> perform:with:
>> >>>>
>> >>>> perform:with:
>> >>>>
>> >>>> perform:
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> new
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> @
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> @
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> @
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> @
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> shallowCopy
>> >>>>
>> >>>> shallowCopy
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> @
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> @
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> @
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> @
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> @
>> >>>>
>> >>>> @
>> >>>>
>> >>>> perform:
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> shallowCopy
>> >>>>
>> >>>> shallowCopy
>> >>>>
>> >>>> primUTCMicrosecondsClock
>> >>>>
>> >>>> //
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> value
>> >>>>
>> >>>> valueNoContextSwitch
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> replaceFrom:to:with:startingAt:
>> >>>>
>> >>>> primitiveGarbageCollect
>> >>>>
>> >>>> **IncrementalGC**
>> >>>>
>> >>>> **FullGC**
>> >>>>
>> >>>> garbageCollectMost
>> >>>>
>> >>>> **IncrementalGC**
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> someInstance
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> someInstance
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> someInstance
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> replaceFrom:to:with:startingAt:
>> >>>>
>> >>>> primitiveGarbageCollect
>> >>>>
>> >>>> **IncrementalGC**
>> >>>>
>> >>>> **FullGC**
>> >>>>
>> >>>> garbageCollectMost
>> >>>>
>> >>>> **IncrementalGC**
>> >>>>
>> >>>> wait
>> >>>>
>> >>>> shallowCopy
>> >>>>
>> >>>> shallowCopy
>> >>>>
>> >>>> signal
>> >>>>
>> >>>> wait
>> >>>>
>> >>>> shallowCopy
>> >>>>
>> >>>> shallowCopy
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> signal
>> >>>>
>> >>>> wait
>> >>>>
>> >>>> shallowCopy
>> >>>>
>> >>>> shallowCopy
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> at:put:
>> >>>>
>> >>>> signal
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> basicNew
>> >>>>
>> >>>> new:
>> >>>>
>> >>>> replaceFrom:to:with:startingAt:
>> >>>>
>> >>>> primitiveGarbageCollect
>> >>>>
>> >>>> **IncrementalGC**
>> >>>>
>> >>>> **FullGC**
>> >>>>
>> >>>>
>> >>>> (Segmentation fault)
>> >>>>
>> >>>> ./pharo: line 11: 5224 Abort trap: 6
>> "$DIR"/"pharo-vm/Pharo.app/Contents/MacOS/Pharo" --headless "$@"
>> >>>
>> >>>
>> >>>
>> >>>
>> >>> --
>> >>> Mariano
>> >>> http://marianopeck.wordpress.com
>> >>
>> >>
>> >
>>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
Nov. 23, 2015
Re: [Pharo-dev] Cleanup of debug requests API
by stepharo
Le 21/11/15 15:32, Ben Coman a écrit :
> An auxiliary concern here this /nice/correct/ form of using self
> makes it invisible to the usual "users-of" search tools. I've been
> bitten by similar before. What can we do to make this use case more
> visible?
If I remember correctly the completion or something like that also use
this trick.
and registers to the tools. This is a rather ugly dependency.
This is not good to me. I do not like this DNU trick because it blurs code
>
> A pragmatic option might be to de-tune the purity of form and use...
> registry register: SyntaxErrorDebugger as: #syntaxErrorDebugger
>
> Probably this would probably additionally need a guard to ensure that
> subclasses can't run this code.
> I'm sure there'll be some adverse views to this suggestion, but I
> wanted raise the question and learn something along the way.
>
> cheers -ben
>
> On Sat, Nov 21, 2015 at 5:55 PM, Nicolai Hess <nicolaihess(a)gmail.com> wrote:
>>
>> 2015-11-21 10:43 GMT+01:00 Max Leske <maxleske(a)gmail.com>:
>>>
>>> On 21 Nov 2015, at 10:22, Denis Kudriashov <dionisiydk(a)gmail.com> wrote:
>>>
>>> Ok.
>>> I just read Nicolai comment.
>>> So question: is SyntaxErrorDebugger used anywhere? I remove it because it
>>> uses another way how to open debugger
>>>
>>>
>>>
>>> My quick check didnât turn up anything. But to be sure, go and grab the
>>> Moose development image. Maybe they use it t
>>
>> The SyntaxErrorDebugger registers itself for Smalltalk tools:
>>
>> registerToolsOn: registry
>> "Add ourselves to registry. See [Smalltalk tools]"
>> registry register: self as: #syntaxErrorDebugger
>>
>> And this is used by MorphicUIManager syntaxErrorNotificationDefaultAction:
>> anException
>>
>> If you fileIn some code with syntactical error, this debugger pops up and
>> (if if would work: issue 16961 ) you could fix that error manually.
>>
>>
>>> here in some way (though I doubt it).
>>>
>>> 21 ноÑб. 2015 г. 10:15 AM полÑзоваÑÐµÐ»Ñ "Max Leske" <maxleske(a)gmail.com>
>>> напиÑал:
>>>>
>>>> On 21 Nov 2015, at 09:34, Denis Kudriashov <dionisiydk(a)gmail.com> wrote:
>>>>
>>>> Slice was declined because I remove SyntaxErrorDebugger. I not found any
>>>> reference to it. And there was no instances of it. Can anybody show me where
>>>> it is used?
>>>>
>>>>
>>>>
>>>> Are you sure? The validation says that it failed due to âsubclass
>>>> responsibility not definedâ (two messages of UIManager that arenât
>>>> implemented in all of its subclasses). It doesnât say anything abut
>>>> SyntaxErrorDebugger.
>>>>
>>>> Cheers,
>>>> Max
>>>>
>>>> 20 ноÑб. 2015 г. 19:27 полÑзоваÑÐµÐ»Ñ "Andrei Chis"
>>>> <chisvasileandrei(a)gmail.com> напиÑал:
>>>>> Very nice. I remember when I made GTDebugger that there were way to many
>>>>> ways to open the debugger. I ended up just copy-pasting things.
>>>>> Would be very useful to have a small doc with what one needs to do to
>>>>> replace SpecDebugger with another debugger (e.g. what are the entry points
>>>>> of the debugger in the system)
>>>>>
>>>>> Cheers,
>>>>> Andrei
>>>>>
>>>>> On Fri, Nov 20, 2015 at 6:48 PM, Denis Kudriashov <dionisiydk(a)gmail.com>
>>>>> wrote:
>>>>>> I clean and refactor all but lowSpaceWatcher.
>>>>>> It is in slice 17069.
>>>>>> In my image it is not broke stuff. So I hope it is safe change.
>>>>>>
>>>>>> 2015-11-20 12:18 GMT+01:00 Denis Kudriashov <dionisiydk(a)gmail.com>:
>>>>>>> Hi
>>>>>>>
>>>>>>> I try to investigate how debugger opens and who initiates it.
>>>>>>> I want to cleanup this logic and simplify current debugger API.
>>>>>>>
>>>>>>> I found that basic error debugging starts with UIManager then
>>>>>>> UIManager calls SpecDebugger, then SpecDebugger calls UIManager and again...
>>>>>>> At the end of this chain debugger is opened by #openFullSuspendLabel: or
>>>>>>> #openNotifierContents:label:
>>>>>>>
>>>>>>> There are two places where opening debugger initiated differently:
>>>>>>> - Low space watcher calls SpecDebugger class>>openInterrupt:onProcess:
>>>>>>> - Warning default action calls SpecDebugger
>>>>>>> class>>openContext:label:contents: (And it not uses UIManager. I guess non
>>>>>>> interactive mode not working here).
>>>>>>>
>>>>>>> In latest Pharo image it is only users of this methods. Is anybody
>>>>>>> know anyone else?
>>>>>>>
>>>>>>> I almost cleaned basic errors debugging. And I want use it for this
>>>>>>> two cases too. But they implements very specific logic. They both contains
>>>>>>> primitive simulation guard 19 and some kind of recursion tracking.
>>>>>>> I understand that low space watcher requires something clever. But why
>>>>>>> Warning not opens debugger with way Error does it?
>>>>>>>
>>>>>>> Any suggestions?
>>>>>>>
>>>>>>> Best regards,
>>>>>>> Denis
>>>>>>
>
Nov. 23, 2015
Re: [Pharo-dev] Rules
by Yuriy Tymchuk
Yes, thanks Stef, itâs really important to report bad explanation, because I work with rules all the time and so know then by heart. I will improve this one, also let me know if there are more strange rationales.
Cheers,
Uko
> On 23 Nov 2015, at 22:20, stepharo <stepharo(a)free.fr> wrote:
>
> yuriy could you improve the explanation of the rule?
>
>
> Le 22/11/15 22:11, Yuriy Tymchuk a écrit :
>> Hi.
>>
>> The rule is correct. Sending a different message to super may be confusing. In this case you are in âprintOn:â method and you are sending âprintOn:nextPutAll:â to super. The idea is that you have to send âprintOn:nextPutAll:â to self and then either it will invoke the super one, you there will be an overridden method in your current class.
>>
>> Secondly, there is an issue with âsends unkown selectorâ. Iâve also noticed it recently. I think that it happens because the rule has a special cace, and I messed up something with refresh. This is the next thing on my TODO list.
>>
>> Cheers.
>> Uko
>>
>>
>>> On 22 Nov 2015, at 16:33, Marcus Denker <marcus.denker(a)inria.fr> wrote:
>>>
>>>
>>>> On 22 Nov 2015, at 12:20, stepharo <stepharo(a)free.fr> wrote:
>>>>
>>>> With the following (broken) definition
>>>>
>>>>
>>>> : aStream
>>>> super printOn: aStream
>>>> aStream nextPutAll: '(', faces printString , ')'
>>>>
>>>> I got this strange rule:
>>>>
>>>> Rewrite super messages to self messages when both refer to same method
>>>>
>>>> I do not get it and it looks really suspicious to me.
>>>> Any suggestions?
>>> The rule is meant to catch the case when when âsuperâ can be âselfâ as there is no #printOn:
>>> defined in the class.
>>>
>>> But here it looks like it is wrong: it would be an infinite loop.
>>>
>>> I think it could be related to this other bug: I have seen that the rules are not correctly updated
>>> when you add methods. (I wanted to add an issue for that but did not yet). E.g. I often get
>>> a âsends unkown selectorâ for self sends and then I check â> method is there, I just added it!
>>>
>>> So here this means that you added a new printOn:, the rules do not update, and it thinks
>>> that there is no printOn:.
>>>
>>> So the real bug is that added methods need to be taken into account by QA.
>>>
>>> Marcus
>>
>>
>
>
Nov. 23, 2015