Add changes notes for Lua changes
This commit is contained in:
parent
778aed5a08
commit
e1b649998b
1 changed files with 39 additions and 0 deletions
|
|
@ -12,6 +12,45 @@ Version 3.0.0 (in progress)
|
||||||
CPlusPlus11.html chapter in the documentation which is included in SWIG and also available
|
CPlusPlus11.html chapter in the documentation which is included in SWIG and also available
|
||||||
online at http://www.swig.org/Doc3.0/CPlusPlus11.html.
|
online at http://www.swig.org/Doc3.0/CPlusPlus11.html.
|
||||||
|
|
||||||
|
2014-03-14: v-for-vandal
|
||||||
|
[Lua] Numerous Lua improvements:
|
||||||
|
1. %nspace support has been added. Namespaces are mapped to tables in the module, with the same
|
||||||
|
name as the C++ namespace.
|
||||||
|
2. Inheritance is now handled differently. Each class metatable keeps a list of class bases instead
|
||||||
|
of merging all members of all bases into the derived class.
|
||||||
|
3. The new metatables result in differences in accessing class members. For example:
|
||||||
|
|
||||||
|
%module example
|
||||||
|
struct Test {
|
||||||
|
enum { TEST1 = 10, TEST2 = 20 };
|
||||||
|
static const int ICONST = 12;
|
||||||
|
};
|
||||||
|
|
||||||
|
Now this can be used as follows:
|
||||||
|
print(example.Test.TEST1)
|
||||||
|
print(example.Test.ICONST)
|
||||||
|
The old way was:
|
||||||
|
print(example.Test_TEST1)
|
||||||
|
print(example.Test_ICONST)
|
||||||
|
|
||||||
|
4. The special class metatable member ".constructor" was removed. Now SWIG generates the proxy
|
||||||
|
function by itself and assigns it directly to the class table "__call" method.
|
||||||
|
5. eLua should also now support inheritance.
|
||||||
|
6. 'const' subtable in eLua is considered deprecated.
|
||||||
|
|
||||||
|
Changes in behaviour:
|
||||||
|
a. You can no longer assign to non-existing class members in classes without a __setitem__ method.
|
||||||
|
It will cause a Lua error.
|
||||||
|
b. You can no longer iterate over a module table and copy everything into the global namespace.
|
||||||
|
Actually, this was never the case, but it is now explicitly prohibited.
|
||||||
|
c. Now changing a base class will immediately affect all derived classes.
|
||||||
|
d. There might be some issues with inheritance. Although the bases iteration scheme is the same
|
||||||
|
as was used for merging base classes into derived one, some unknown issues may arise.
|
||||||
|
|
||||||
|
The old metatable behaviour can be restored by using the -no-old-metatable-bindings option.
|
||||||
|
|
||||||
|
*** POTENTIAL INCOMPATIBILITY ***
|
||||||
|
|
||||||
2014-03-06: wsfulton
|
2014-03-06: wsfulton
|
||||||
[Python] Change in default behaviour wrapping C++ bool. Only a Python True or False
|
[Python] Change in default behaviour wrapping C++ bool. Only a Python True or False
|
||||||
will now work for C++ bool parameters. This fixes overloading bool with other types.
|
will now work for C++ bool parameters. This fixes overloading bool with other types.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue