summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2014-03-16 21:09:52 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2014-03-16 21:11:03 +0000
commite1b649998b7de43a002b60b9dcc369c1b24ce359 (patch)
treee5a072c8635ea35d3122d13cda1067d051133393
parent778aed5a085753cc4ac3509cad5088f2370a2b1b (diff)
downloadswig-e1b649998b7de43a002b60b9dcc369c1b24ce359.tar.gz
Add changes notes for Lua changes
-rw-r--r--CHANGES.current39
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.