Here is a summary of the recent changes:
- support for step in the for loop structure (step value must be >=1, enforced at compile time for constants, at runtime for dynamic values). Note that step is only a contextual keyword, and not a reserved word (you can still have variables named “step” f.i.).
for i := 0 to 10 step 2 do ... for i := 100 downto 1 step 3 do ...
- support Prism-like exit syntax, ie. the following statements are now equivalent:
Result := value; exit; Exit( value ); exit value;
- support not in form for the in operator, both following expressions are equivalent:
value not in [...alternatives...] not (value in [...alternatives...])
- break/continue outside of a loop are now detected at compile-time.
- improved infinite loop detection: compiler will now warn about more cases of while/repeat with constant conditions and no inner break/exit.
The first elements to support language extensions are also in, more details coming in a future post!
Re “not in”: I hope you’ve done your patent research – http://en.wikipedia.org/wiki/Visual_Basic_.NET#.27IsNot.27_operator_patented 😉
Well, I still got the space between not & in!
That said, “is not” sounds like a good idea, and being two words would be patent-free, no? 😉
You seem to be an optimist.
Actually after reading the patent, it seems to be okay, as “is not” involves two keywords, and the patents cover the case of a single keyword.
Second, there has been prior art uncovered by other companies already, like Python’s “is not”.
Third, software patents aren’t accepted in Europe anyway 😉
Yeah, good old Europe. 😉
Somehow it’s sad that jokes about stuff like that are funny.