diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2014-03-16 21:09:52 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2014-03-16 21:11:03 +0000 |
commit | e1b649998b7de43a002b60b9dcc369c1b24ce359 (patch) | |
tree | e5a072c8635ea35d3122d13cda1067d051133393 /CHANGES.current | |
parent | 778aed5a085753cc4ac3509cad5088f2370a2b1b (diff) | |
download | swig-e1b649998b7de43a002b60b9dcc369c1b24ce359.tar.gz |
Add changes notes for Lua changes
Diffstat (limited to 'CHANGES.current')
-rw-r--r-- | CHANGES.current | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/CHANGES.current b/CHANGES.current index bbdbcbfd6..63f545fc0 100644 --- a/CHANGES.current +++ b/CHANGES.current @@ -12,6 +12,45 @@ Version 3.0.0 (in progress) CPlusPlus11.html chapter in the documentation which is included in SWIG and also available 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 [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. |