When I add an iv to Model I get a ByteSymbol>>entity: QANautilusPluggin>>initialize changeHandler := GLMAsyncTask new priority: Processor activePriority - 1; doInBackground: [ morph entity: self currentEntity ]; yourself And in the debugger morph is a a Morph exactly a QANautilusPluginMorph(493092864) Yuriy do you use thread? Stef
Wow, this is weird. Yes, GLMAsyncTask spawns a process. I use it not to block the ui in nautilus while critics are retrieved. So when you switch to a new method it changes pluginâs critic list to âloading progress morphâ and runs the task with a lower priority. If in ui you go through methods, it simply reschedules the task to check different critics. When you stop working with UI it calculates the critics and shows them to you. For me its weird that you get DNU for symbol while `morph` should be a QANautilusPluginMorph. Did I do something very evil not knowing about all the concurrent/morphic black magic? Uko
On 28 Aug 2015, at 10:50, stepharo <stepharo@free.fr> wrote:
When I add an iv to Model I get a ByteSymbol>>entity:
QANautilusPluggin>>initialize
changeHandler := GLMAsyncTask new priority: Processor activePriority - 1; doInBackground: [ morph entity: self currentEntity ]; yourself
And in the debugger morph is a a Morph exactly a QANautilusPluginMorph(493092864)
Yuriy do you use thread?
Stef
Maybe related.. there is test failing on the CI server : ReleaseTests.ReleaseTest.testMethodsWithUnboundGlobals (from ReleaseTests) Found methods with unbound globals: an OrderedCollection(QANautilusPluginMorph>>#buildConfirmationCheckbox:)
On 28 Aug 2015, at 11:34, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:
QANautilusPluggin
I will take a look at the issue in the evening. It's related to the latest refactoring but should not be connected to the AsyncTask in any way Uko Sent from my iPhone
On 28 Aug 2015, at 12:52, Marcus Denker <marcus.denker@inria.fr> wrote:
Maybe related.. there is test failing on the CI server :
ReleaseTests.ReleaseTest.testMethodsWithUnboundGlobals (from ReleaseTests) Found methods with unbound globals: an OrderedCollection(QANautilusPluginMorph>>#buildConfirmationCheckbox:)
On 28 Aug 2015, at 11:34, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:
QANautilusPluggin
I just added an instance variable to Model. Le 28/8/15 11:34, Yuriy Tymchuk a écrit :
Wow, this is weird.
Yes, GLMAsyncTask spawns a process. I use it not to block the ui in nautilus while critics are retrieved. So when you switch to a new method it changes pluginâs critic list to âloading progress morphâ and runs the task with a lower priority. If in ui you go through methods, it simply reschedules the task to check different critics. When you stop working with UI it calculates the critics and shows them to you.
For me its weird that you get DNU for symbol while `morph` should be a QANautilusPluginMorph. Did I do something very evil not knowing about all the concurrent/morphic black magic?
Uko
On 28 Aug 2015, at 10:50, stepharo <stepharo@free.fr> wrote:
When I add an iv to Model I get a ByteSymbol>>entity:
QANautilusPluggin>>initialize
changeHandler := GLMAsyncTask new priority: Processor activePriority - 1; doInBackground: [ morph entity: self currentEntity ]; yourself
And in the debugger morph is a a Morph exactly a QANautilusPluginMorph(493092864)
Yuriy do you use thread?
Stef
So the byte symbol comes from the âpositionâ inst var of the superclass. Iâm not completely sure how it works on low level, but I guess that because you a a new variable, the others shift and it accesses the value that is actually mapped to another variable. Is it the issue of my implementation? How can I improve it? Uko
On 28 Aug 2015, at 10:50, stepharo <stepharo@free.fr> wrote:
When I add an iv to Model I get a ByteSymbol>>entity:
QANautilusPluggin>>initialize
changeHandler := GLMAsyncTask new priority: Processor activePriority - 1; doInBackground: [ morph entity: self currentEntity ]; yourself
And in the debugger morph is a a Morph exactly a QANautilusPluginMorph(493092864)
Yuriy do you use thread?
Stef
On 30 Aug 2015, at 10:57, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:
So the byte symbol comes from the âpositionâ inst var of the superclass. Iâm not completely sure how it works on low level, but I guess that because you a a new variable, the others shift and it accesses the value that is actually mapped to another variable. Is it the issue of my implementation? How can I improve it?
The class builder is normally supposed to fix that transparently: You add var, all methods are recompiled and all instances are migrated. There could be bugs there.
Uko
On 28 Aug 2015, at 10:50, stepharo <stepharo@free.fr> wrote:
When I add an iv to Model I get a ByteSymbol>>entity:
QANautilusPluggin>>initialize
changeHandler := GLMAsyncTask new priority: Processor activePriority - 1; doInBackground: [ morph entity: self currentEntity ]; yourself
And in the debugger morph is a a Morph exactly a QANautilusPluginMorph(493092864)
Yuriy do you use thread?
Stef
may be code executing the check did not get mutated when the system changed shape. Le 30/8/15 11:00, Marcus Denker a écrit :
On 30 Aug 2015, at 10:57, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:
So the byte symbol comes from the âpositionâ inst var of the superclass. Iâm not completely sure how it works on low level, but I guess that because you a a new variable, the others shift and it accesses the value that is actually mapped to another variable. Is it the issue of my implementation? How can I improve it?
The class builder is normally supposed to fix that transparently: You add var, all methods are recompiled and all instances are migrated. There could be bugs there.
Uko
On 28 Aug 2015, at 10:50, stepharo <stepharo@free.fr> wrote:
When I add an iv to Model I get a ByteSymbol>>entity:
QANautilusPluggin>>initialize
changeHandler := GLMAsyncTask new priority: Processor activePriority - 1; doInBackground: [ morph entity: self currentEntity ]; yourself
And in the debugger morph is a a Morph exactly a QANautilusPluginMorph(493092864)
Yuriy do you use thread?
Stef
Yes, but the situation is weird, because if you look at the variable in the debugger - everything is ok. Is there a way to understand what has not mutated? Uko
On 30 Aug 2015, at 13:35, stepharo <stepharo@free.fr> wrote:
may be code executing the check did not get mutated when the system changed shape.
Le 30/8/15 11:00, Marcus Denker a écrit :
On 30 Aug 2015, at 10:57, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:
So the byte symbol comes from the âpositionâ inst var of the superclass. Iâm not completely sure how it works on low level, but I guess that because you a a new variable, the others shift and it accesses the value that is actually mapped to another variable. Is it the issue of my implementation? How can I improve it?
The class builder is normally supposed to fix that transparently: You add var, all methods are recompiled and all instances are migrated. There could be bugs there.
Uko
On 28 Aug 2015, at 10:50, stepharo <stepharo@free.fr> wrote:
When I add an iv to Model I get a ByteSymbol>>entity:
QANautilusPluggin>>initialize
changeHandler := GLMAsyncTask new priority: Processor activePriority - 1; doInBackground: [ morph entity: self currentEntity ]; yourself
And in the debugger morph is a a Morph exactly a QANautilusPluginMorph(493092864)
Yuriy do you use thread?
Stef
Hi, All methods (and methods of blocks) that are executing already will keep executing the wrong code. As only offsets change, one could do on-stack replacement of these methods, but nobody has implemented that yet. It might be good to have a check that warns when changing layout of classes that are active on the stackâ¦.
On 30 Aug 2015, at 14:49, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:
Yes, but the situation is weird, because if you look at the variable in the debugger - everything is ok. Is there a way to understand what has not mutated?
Uko
On 30 Aug 2015, at 13:35, stepharo <stepharo@free.fr> wrote:
may be code executing the check did not get mutated when the system changed shape.
Le 30/8/15 11:00, Marcus Denker a écrit :
On 30 Aug 2015, at 10:57, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:
So the byte symbol comes from the âpositionâ inst var of the superclass. Iâm not completely sure how it works on low level, but I guess that because you a a new variable, the others shift and it accesses the value that is actually mapped to another variable. Is it the issue of my implementation? How can I improve it?
The class builder is normally supposed to fix that transparently: You add var, all methods are recompiled and all instances are migrated. There could be bugs there.
Uko
On 28 Aug 2015, at 10:50, stepharo <stepharo@free.fr> wrote:
When I add an iv to Model I get a ByteSymbol>>entity:
QANautilusPluggin>>initialize
changeHandler := GLMAsyncTask new priority: Processor activePriority - 1; doInBackground: [ morph entity: self currentEntity ]; yourself
And in the debugger morph is a a Morph exactly a QANautilusPluginMorph(493092864)
Yuriy do you use thread?
Stef
marcus could you log that issue somewhere because I hope that we will get a new Phd working update. Stef Le 30/8/15 18:29, Marcus Denker a écrit :
Hi,
All methods (and methods of blocks) that are executing already will keep executing the wrong code.
As only offsets change, one could do on-stack replacement of these methods, but nobody has implemented that yet.
It might be good to have a check that warns when changing layout of classes that are active on the stackâ¦.
On 30 Aug 2015, at 14:49, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:
Yes, but the situation is weird, because if you look at the variable in the debugger - everything is ok. Is there a way to understand what has not mutated?
Uko
On 30 Aug 2015, at 13:35, stepharo <stepharo@free.fr> wrote:
may be code executing the check did not get mutated when the system changed shape.
Le 30/8/15 11:00, Marcus Denker a écrit :
On 30 Aug 2015, at 10:57, Yuriy Tymchuk <yuriy.tymchuk@me.com> wrote:
So the byte symbol comes from the âpositionâ inst var of the superclass. Iâm not completely sure how it works on low level, but I guess that because you a a new variable, the others shift and it accesses the value that is actually mapped to another variable. Is it the issue of my implementation? How can I improve it?
The class builder is normally supposed to fix that transparently: You add var, all methods are recompiled and all instances are migrated. There could be bugs there.
Uko
On 28 Aug 2015, at 10:50, stepharo <stepharo@free.fr> wrote:
When I add an iv to Model I get a ByteSymbol>>entity:
QANautilusPluggin>>initialize
changeHandler := GLMAsyncTask new priority: Processor activePriority - 1; doInBackground: [ morph entity: self currentEntity ]; yourself
And in the debugger morph is a a Morph exactly a QANautilusPluginMorph(493092864)
Yuriy do you use thread?
Stef
participants (3)
-
Marcus Denker -
stepharo -
Yuriy Tymchuk