[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: 5.2 and 5.1
- From: Roberto Ierusalimschy <roberto@...>
- Date: Wed, 10 Apr 2013 11:23:18 -0300
> - i.e. any releases are either bug fixes; or, genuinely new features being
> tried out for the next major release and which do not interfere with
> existing mature code.
Even in C, the introduction of the C++-style comment in C99 can break
existing code:
int x = 5 //* strange construction */ + 5
+ 5;
(x will be 6 in old-style ANSI C, but 10 if the compiler
accepts '//' for comments.)
In a trully dynamic language, any change can interfere with existing
mature code, because the code could assume that something did not
exist or was invalid. For instance, the introduction of the '%' operator
in Lua breaks this program:
assert(not loadstring("x = 4 % 5"))
So, "do not interfere" (or "incompatible") is something relative, not
absolute. The above examples are clearly artificial, but they show that
it is far from clear where to draw the line.
-- Roberto