[GemStone-Smalltalk] Variables and block closure
James Foster via GemStone-Smalltalk
gemstone-smalltalk at lists.gemtalksystems.com
Tue Mar 17 12:26:27 PDT 2015
The simple reproducible case is as follows:
| a |
[ | b |
a := [a].
b := [b].
a value -> b value.
] value. "anExecBlock0->nil"
By the way, 3.3 is expected to be released this year, but nothing much more specific is available.
> On Mar 17, 2015, at 12:02 PM, Pierre CHANSON <chans.pierre at gmail.com <mailto:chans.pierre at gmail.com>> wrote:
>
> Thanks James,
>
> ok I am working on an older version, not even the last one. So here is a very good reason I should upgrade to the last version as soon as it is released. That will be some work.
>
> by the way my previous code example did not had any sense. This is the good one (if someone read it) and it is the same problem:
>
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> [| traversal array result|
> traversal := nil.
> result := OrderedCollection new.
> traversal := [ :a :r |
> |rtemp|
> a do: [ :e | (e isArray) ifTrue: [ rtemp := OrderedCollection new. r add: rtemp. traversal value: e value: rtemp] ifFalse: [ r add: e asString ] ] ].
> array := Array with: (Array with: 1 with: 4) with: #ok with: (Array with: #henry).
> traversal value: array value: result.
> result.
> ] on: Error do: [:evt | evt asString]
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
> Cheers,
>
> Pierre
>
> 2015-03-17 15:52 GMT-03:00 James Foster <james.foster at gemtalksystems.com <mailto:james.foster at gemtalksystems.com>>:
> There are some bugs in the way blocks handle variables in GemStone/S 64-bit 3.2.x (and possibly earlier; you don’t mention your version) that will be fixed in 3.3 (but probably not before; this is described internally with bug #45059).
>
> James
>
> > On Mar 17, 2015, at 11:17 AM, Pierre CHANSON via GemStone-Smalltalk <gemstone-smalltalk at lists.gemtalksystems.com <mailto:gemstone-smalltalk at lists.gemtalksystems.com>> wrote:
> >
> > Hi everyone,
> >
> > I wonder why is that two expressions are not evaluated similarly by Gemstone, but they are by Pharo ?
> >
> > The second one is the one I would like to be working like the first one is, in Gemstone.
> >
> > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> > [ | traversal array|
> > traversal := [ :a | a do: [ :e | (e isArray) ifTrue: [ traversal value: e ] ifFalse: [ e asString ] ] ].
> > array := Array with: (Array with: 1 with: 4) with: #ok with: (Array with: #henry).
> > traversal value: array.
> > ] on: Error do: [:evt | evt asString]
> > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> >
> > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> > | traversal array|
> > [ traversal := [ :a | a do: [ :e | (e isArray) ifTrue: [ traversal value: e ] ifFalse: [ e asString ] ] ].
> > array := Array with: (Array with: 1 with: 4) with: #ok with: (Array with: #henry).
> > traversal value: array.
> > ] on: Error do: [:evt | evt asString]
> > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> >
> > Thank you,
> >
> > Pierre
> >
> > _______________________________________________
> > GemStone-Smalltalk mailing list
> > GemStone-Smalltalk at lists.gemtalksystems.com <mailto:GemStone-Smalltalk at lists.gemtalksystems.com>
> > http://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk <http://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/gemstone-smalltalk/attachments/20150317/cee27d45/attachment.html>
More information about the GemStone-Smalltalk
mailing list