[Pharo-dev] In Debugger: block variables nil

2015-04-03 Thread Stefan Marr
Hi:

While debugging the beautiful method below, I noticed that the debugger shows 
data1 to be `nil`, while it actually has a proper value. That is, the pane on 
the right bottom shows the wrong value.
When inspecting `data1` within the source code pane, it is correctly shown in 
the inspector.

Is this a known issue? Should I file a bug?

Best regards
Stefan

createWorker: identity priority: priority work: work state: state 
| data |
data := RichWorkerTaskDataRecord create.
self
createTask: identity
priority: priority
work: work
state: state
function: 
[:work1 :word | | data1 |
data1 := word.
RichObject NoWork == work1
ifTrue: [self wait]
ifFalse: 
[data1 destination: (RichObject HandlerA = data1 destination
ifTrue:  [RichObject HandlerB]
ifFalse: [RichObject HandlerA]).
work1 identity: data1 destination.
work1 datum: 1.
1 to: 4 do: [ :i | 
data1 count: data1 count + 1.
data1 count  26 ifTrue: [data1 count: 1].
work1 data at: i put: $A asInteger + data1 count - 1].
self queuePacket: work1]]
data: data


-- 
Stefan Marr
INRIA Lille - Nord Europe
http://stefan-marr.de/research/






Re: [Pharo-dev] In Debugger: block variables nil

2015-04-03 Thread Peter Uhnák
Hi Stefan,

it is a know issue ( https://pharo.fogbugz.com/f/cases/15174/,
https://pharo.fogbugz.com/f/cases/14606/ ) and it is currently being worked
on.

Peter

On Fri, Apr 3, 2015 at 3:19 PM, Stefan Marr smallt...@stefan-marr.de
wrote:

 Hi:

 While debugging the beautiful method below, I noticed that the debugger
 shows data1 to be `nil`, while it actually has a proper value. That is, the
 pane on the right bottom shows the wrong value.
 When inspecting `data1` within the source code pane, it is correctly shown
 in the inspector.

 Is this a known issue? Should I file a bug?

 Best regards
 Stefan

 createWorker: identity priority: priority work: work state: state
 | data |
 data := RichWorkerTaskDataRecord create.
 self
 createTask: identity
 priority: priority
 work: work
 state: state
 function:
 [:work1 :word | | data1 |
 data1 := word.
 RichObject NoWork == work1
 ifTrue: [self wait]
 ifFalse:
 [data1 destination: (RichObject HandlerA = data1
 destination
 ifTrue:  [RichObject HandlerB]
 ifFalse: [RichObject HandlerA]).
 work1 identity: data1 destination.
 work1 datum: 1.
 1 to: 4 do: [ :i |
 data1 count: data1 count + 1.
 data1 count  26 ifTrue: [data1 count: 1].
 work1 data at: i put: $A asInteger + data1 count -
 1].
 self queuePacket: work1]]
 data: data


 --
 Stefan Marr
 INRIA Lille - Nord Europe
 http://stefan-marr.de/research/