swig/Examples/lua/import
Erez Geva 74ff929bd4 Remove Lua 5.0 and Lua 5.1 and Lua options
- configure.ac
  - Use minimum version 5.2 for Lua
  - Add lua 5.5, it was released in dec 2025
  - Syntax improvements
- GHA CI
  - Remove 'default' Lua version, it is confusing.
    Just select the version explicitly.
  - Add Lua 5.4 test, we need to test all supported versions 5.2, 5.3 and 5.4
    Lua 5.5 is not available on Ubuntu yet.
- Lua documentation Doc/Manual/Lua.html
  - Update version to 5.2
  - Remove mention to older SWIG version,
    whom wishes to go to the very old history can look on CHANGES.
  - Add references on missing operators in Lua.
- _ENV exist from Lua 5.2.
- Remove old compatibility code from Lib/lua/luarun.swg.
- Remove LUA_VERSION_NUM from Lua C wrapping code.
  It was used for old Lua 5.0 and Lua 5.1.
- Remove _VERSION from Lua tests.
  Note: _VERSION remains a keyword and developers may use it in interface files!
- Remove Example/lua/import.lua and Examples/test-suite/lua/import.lua
  as they are not used or needed any longer.
  - Remove old Lua import.
- Add Examples/test-suite/lua/helpers.lua
  - include it in all tests in test-suite.
  - Add catch "undefined" global variables enable function.
  - Add import_to_globs function.
    To add module functions, variables and classes to global scope.
- Remove the -squash-bases option as it is broken
  The der.new_func from the example
  in the document,  "29.3.18.3 Inheritance",
  pass from base object to derived object
  regardless of using the flag or not.
- Remove -no-old-metatable-bindings as it is deprecated in the last 12 years

Signed-off-by: Erez Geva <ErezGeva2@gmail.com>
2026-05-30 17:24:17 +01:00
..
Makefile Remove use of preinst-swig script 2015-08-21 22:43:17 +01:00
README Correct to Unix CR/LF 2015-09-05 16:18:03 +01:00
bar.h Fixed issues with C++ classes and hierachies across multiple source files. 2007-05-02 02:20:29 +00:00
bar.i Fixed issues with C++ classes and hierachies across multiple source files. 2007-05-02 02:20:29 +00:00
base.h Remove bogus ; after } in examples 2014-11-07 15:34:43 +13:00
base.i Fixed issues with C++ classes and hierachies across multiple source files. 2007-05-02 02:20:29 +00:00
foo.h Fixed issues with C++ classes and hierachies across multiple source files. 2007-05-02 02:20:29 +00:00
foo.i Fixed issues with C++ classes and hierachies across multiple source files. 2007-05-02 02:20:29 +00:00
runme.lua Remove Lua 5.0 and Lua 5.1 and Lua options 2026-05-30 17:24:17 +01:00
spam.h Fixed issues with C++ classes and hierachies across multiple source files. 2007-05-02 02:20:29 +00:00
spam.i Fixed issues with C++ classes and hierachies across multiple source files. 2007-05-02 02:20:29 +00:00

README

This example tests the %import directive and working with multiple modules.

Use 'lua runme.lua' to run a test.

Overview:
---------

The example defines 4 different extension modules--each wrapping
a separate C++ class.

     base.i     -  Base class
     foo.i      -  Foo class derived from Base
     bar.i      -  Bar class derived from Base
     spam.i     -  Spam class derived from Bar

Each module uses %import to refer to another module.  For
example, the 'foo.i' module uses '%import base.i' to get
definitions for its base class.

If everything is okay, all of the modules will load properly and
type checking will work correctly. Caveat: Some compilers, for example
gcc-3.2.x, generate broken vtables with the inline methods in this test.
This is not a SWIG problem and can usually be solved with non-inlined
destructors compiled into separate shared objects/DLLs.

Unix:
-----
- Run make
- Run the test as described above

Windows:
--------
Sorry, no files here.
If you know how, you could copy the python or ruby example dsw & dsp and try editing that