Friday, October 29, 2010

ELENA 1.5.6 released

What's new in 1.5.6

Despite my promise in the previous post I released a new version early and it is a major one. Once again the method calling routine was overhauled.
So what's the point of it? After the subject concept was introduced the number of subjects increased at very high speed. Practically any new functionality brought new subjects as well. So I realized that proposed solution is not ideal and there is a question of subject reusing. So the next step was to start to use it for different patterns. But this contradicted with the original goal of subjects - to prevent possible name conflicts. As a result I separated generic subjects from domain oriented. Instead of "aControl control'items" I use "aControl control items" (where items is a generic subject and control is a part of gui dictionary). Thus the code was simplified (both compiler and source ones) and several ideas were dropped (property, nested subjects and so on).
Another very important change deals with nil'ifnot. Actually "if" or "ifnot" verbs require a parameter. "is" does not need is. So Instead of "nil'ifnot" - "nil'if" is used (and this is more logical than the previous message, only nil symbol should support it)
And of course all these changes broke the compatibility with the previous versions (but I hope this will not require any significant efforts).

Here the comparison between 1.5.5.x and 1.5.6 code samples:
  • aControls @ connector'SecondPlayerID control'items control'selected'index'set:0.
  • aControls @ connector'SecondPlayerID items selected'set:0.
Or
  • #var aPlayerInfo := aControl control'items control'selected control'tag.
  • #var aPlayerInfo := aControl items selected tag.
Or
  • #if aValue nil'ifNot [self write:aValue. ].
  • #if aValue nil'is | [self write:aValue. ].

No comments:

Post a Comment