The debug command line options that display parse tree nodes
(-debug-module, -debug-top, -debug-symtabs) now display previously hidden
linked list pointers which are useful for debugging parse trees.
Added new command line option -debug-quiet. This suppresses the display
of most linked list pointers and symbol table pointers in the parse tree nodes.
The keys in the parse tree node are now shown in alphabetical order.
The version checking was historically done to deal with
different versions and importing the low-level Python
module. Then it was used to try and help when using -py3.
A minimum version check implies that the wrappers work
with any version >= 2.7, which is not really correct.
The correct thing to do is to check that the exact
version used matches the one that the C layer was compiled
against, which can only be left for the user to do, perhaps
using %pythonbegin.
Issue #1779
Problem when all the base class's overloaded methods were
overridden in the derived class - fixes "multiply defined" errors.
Linked lists of the overloaded methods were not set up correctly
when handling the using declaration.
Closes#2244
A metaclass is added using a decorator @_swig_add_metaclass which
is designed to provide a metaclass that works for both Python 2 and Python 3.
The option to use the Python 3 only syntax: metaclass=_SwigNonDynamicMeta
via the -py3 command line option has been removed as part of a
simplification to remove the -py3 option.
Issue #1779
pyabc.i for abstract base classes now supports versions of Python
prior to 3.3 by using the collection module for these older versions.
Python-3.3 and later continue to use the collections.abc module.
The -py3 option no longer has any effect on the %pythonabc feature.
* flatstaticmember:
Test -flatstaticmethod and %extend
Python -flatstaticmethod corrections
Enable flat static constructor methods
Move low level static methods
Use flat static method if it's a "friend"
Python: Option to generate flat class methods
Correct logic for suppressing static methods.
Previous logic was missing director disown methods.
Add changes file entry for -flatstaticmethod.
Closes#2137
With flags DOH_REPLACE_ID_BEGIN, DOH_REPLACE_ID_END and
DOH_REPLACE_NUMBER_END the code looked for a match for the token
string using strstr() and then checked the extra condition - if the
extra condition didn't apply it then advanced by the length of the token
before searching again.
However that can miss matches if the strstr() matches can overlap
one another, so only advance one position, which is conservative
but can't miss matches.
For example this would not match before:
Replace("123123", "1231", r, DOH_REPLACE_NUMBER_END);
This issue seems to be entirely latent in the current SWIG codebase
due to the nature of the token strings passed when using these flags.
See #2235
Previously SWIG checked that the typemap action contained ";\n" not
followed by an identifier character, and that it contained no other
`;`, but that incorrectly allows some cases it shouldn't.
Instead check that the action ends with `;\n` and contains no other
`;`, which is simpler and correctly rejects these cases.
* wsfulton/appveyor-vs2022:
Cygwin testing - test python3 (3.9) instead of python-2.7
Last resort to use /usr/lib in python linking
mingw - install python from pacman
Fix detection of python .lib file for 2 digits in minor version
cpp11_result_of testcase and result_of deprecation in c++17
Testcase correction for using declaration and members
Fix compiler warning using Java std::wstring
Appveyor changes to use Visual Studio 2022 image
Avoid deprecations warnings using c++17 and later compiler.
Keep testing using c++11 and c++14 compilers.
Provide simple alternative to keep run time tests working with
c++17 and later compilers.
The compiler calls setWindowGrab(bool) instead of setWindowsGrab(NativeWindowType*)
and gives a warning with Visual C++ when calling setWindowGrab(true)
with a pointer to ApplicationContextSDL.
Looks like function function hiding of the non-virtual method.
I can't see this changing testing of the original bug.
- Mingw/MSYS2 now running on VS2022 image updating to python-3.10 and jdk-17.
- Added Visual 2022 C++ compiler, version 19.3 to build (python-3.10) on VS2022 image.
- Update cygwin to use VS2022 image.
Set it so it should be visible where the CI log shows the environment,
as `make` is run with `-s` so the compile command lines are unhelpfully
not shown.
* Change the builder filename to match the loader filename
* Mark extern functions with SWIGEXPORT
* Fix bug: builder.sce not generated if with '-scilab -builder' option
Fixes#1853
It seems too brittle to enable by default as we'd have to avoid
including any system headers after doh.h, which is hard to enforce,
but just having it enabled for one CI job should avoid uses of the
poisoned symbols from being accidentally introduced.
See #2223