Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
November 2015
- 972 messages
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
Re: [Pharo-dev] Rules
by stepharo
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
[pharo-project/pharo-core]
by GitHub
Branch: refs/tags/50463
Home: https://github.com/pharo-project/pharo-core
Nov. 23, 2015
[pharo-project/pharo-core] 5a218c: 50463
by GitHub
Branch: refs/heads/5.0
Home: https://github.com/pharo-project/pharo-core
Commit: 5a218c6a93470f2b96f58dac0591e6d9260e140b
https://github.com/pharo-project/pharo-core/commit/5a218c6a93470f2b96f58dac…
Author: Jenkins Build Server <board(a)pharo-project.org>
Date: 2015-11-23 (Mon, 23 Nov 2015)
Changed paths:
M CodeImport.package/FileCompilerRequestor.class/instance/interactive error protocol/notify_at_in_.st
M DebuggerModel.package/DebugSession.class/instance/debugging actions/terminate.st
M OpalCompiler-Core.package/CCompilationContext.class/instance/options/parseOptions_.st
M OpalCompiler-Core.package/CompilationContext.class/instance/options/parseOptions_.st
A OpalCompiler-Core.package/extension/Set/instance/parseOptions_.st
A Reflectivity-Tests.package/ReflectivityControlTest.class/instance/tests - after/testAfterSendWeak.st
A Reflectivity.package/MetaLink.class/instance/options/hasOption_.st
M Reflectivity.package/RFASTTranslator.class/instance/reflectivity/emitMetaLinkAfter_.st
M Reflectivity.package/RFASTTranslator.class/instance/reflectivity/emitPrepareLinkAfter_.st
A Reflectivity.package/extension/RBProgramNode/instance/allAfterAreWeak.st
M Reflectivity.package/extension/RBProgramNode/instance/hasMetalinkAfter.st
R Reflectivity.package/extension/Set/instance/parseOptions_.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50462.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - scripts/script50463.st
R ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50462.st
A ScriptLoader50.package/ScriptLoader.class/instance/pharo - updates/update50463.st
M ScriptLoader50.package/ScriptLoader.class/instance/public/commentForCurrentUpdate.st
M Tools.package/SyntaxErrorDebugger.class/definition.st
M Tools.package/SyntaxErrorDebugger.class/instance/initialization/release.st
A Tools.package/SyntaxErrorDebugger.class/instance/initialization/setClass_code_error_location_debugSession_doitFlag_.st
R Tools.package/SyntaxErrorDebugger.class/instance/initialization/setClass_code_error_location_debugger_doitFlag_.st
M Tools.package/SyntaxErrorDebugger.class/instance/initialization/syntaxError_.st
M Tools.package/SyntaxErrorDebugger.class/instance/menu/debug.st
M Tools.package/SyntaxErrorDebugger.class/instance/menu/proceed.st
M Tools.package/SyntaxErrorDebugger.class/instance/other/notify_at_in_.st
Log Message:
-----------
50463
17082 Opening debugger API cleanup. Part2
https://pharo.fogbugz.com/f/cases/17082
17093 use Set #parseOptions: in Opal
https://pharo.fogbugz.com/f/cases/17093
17092 Make ensure: wrapping optional for #after on sends
https://pharo.fogbugz.com/f/cases/17092
http://files.pharo.org/image/50/50463.zip
Nov. 23, 2015
Re: [Pharo-dev] Rules
by stepharo
Le 22/11/15 19:01, Peter Uhnák a écrit :
>>> printOn: aStream
>>> super printOn: aStream
>>> aStream nextPutAll: '(', faces printString , ')'
> Because you forgot dot after the first line.
>
> This is why I always use autoformatting to catch these kind of stupid
> mistakes (happens to me a lot).
Yes I did it on purpose.
This is part of the "learning from mistakes" lecture I'm writing. Now
the explanation of the rule is plain bad.
>
Nov. 23, 2015
Re: [Pharo-dev] Rules
by stepharo
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.
exactly but do you expect a newbie to understand anything with the
current explanation?
I do not.
"
Rewrite super messages to self messages when both refer to same method"
Sucks
>
> 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
Re: [Pharo-dev] Rules
by stepharo
>> 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.
No really because I forgot on purpose the period.
Now the explanation could be really improved. It could say
Since you are not redefining printOn: nextPutAll:, it may be better not
to use super.
This would be a lot more understandable for newbies.
>
> 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
Re: [Pharo-dev] Merge tests and mocks of Monticello
by stepharo
I do not know if the logic was not done exactly to separate them but we
can try to merge them.
Le 21/11/15 16:43, Ferlicot D. Cyril a écrit :
> Hi,
>
> The tests and the Mocks of Monticello are in two different packages.
> Since Mocks depends on Tests and Tests depends on Mocks, shouldn't they
> be in the same package ?
>
Nov. 23, 2015