| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
See #2151
|
| |
|
|\
| |
| | |
Update Windows CMake builds to use NuGet package for PCRE2
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Avoid UTF-32 to UTF-8 conversion then get string from UTF-8
Missing change that should have gone into eaf468e9e8d3ef17f397ef6bc5e73807a2bf3594
|
| | |
|
| |
| |
| |
| | |
Returns a list of sorted keys in a DOH Hash.
|
| |
| |
| |
| | |
Tests are now passing there.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The one we're currently using only considers the last five characters
plus the least significant bit of the last-but-sixth character, which
unsurprisingly generates a lot of many-way collisions.
This change seems to give about a 4% reduction in wallclock time for
processing li_std_list_wrap.i from the testsuite for Python. The
hash collision rate for this example drops from 39% to 0!
Closes #2303
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Output C/C++ type strings (| separated) in swig_type_info tables in
fixed order. The types are output in alphabetically sorted order,
with an exception. The final type is a fully resolved type, but
does not necessarily include default template parameters.
This type is the one used by SWIG_TypePrettyName which is commonly
used to display a type when the wrong type is passed in as a
parameter.
Previously the order was not very deterministic due to the use of
internal hash tables which do not have an ordering guarantee.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Output conversion functions used in the type tables in sorted order.
Sorted order in this case is the type being converted from.
So _p_BarTo_p_Foo comes before _p_ZarTo_p_Foo.
Previously the order was roughly in the order that the types were
parsed, but not necessarily due to the use of internal hash tables
which do not have an ordering guarantee.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Output conversion functions used in the type tables in sorted order.
Sorted order in this case is the type being converted to.
So _p_BarTo_p_Foo comes before _p_BarTo_p_Zoo.
Previously the order was roughly in the order that the types were
parsed, but not necessarily due to the use of internal hash tables
which do not have an ordering guarantee.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Many parts of the runtime tables are alphabetically sorted before
for the generated code. This patch sorts the elements within the
swig_cast_info lists. Order now is first the elements without a
converter then the elements with a converter.
For example:
new:
static swig_cast_info _swigc__p_Foo[] = {
{&_swigt__p_Foo, 0, 0, 0},
{&_swigt__p_Bar, _p_BarTo_p_Foo, 0, 0},
{&_swigt__p_Spam, _p_SpamTo_p_Foo, 0, 0},
{0, 0, 0, 0}};
old:
static swig_cast_info _swigc__p_Foo[] = {
{&_swigt__p_Bar, _p_BarTo_p_Foo, 0, 0},
{&_swigt__p_Foo, 0, 0, 0},
{&_swigt__p_Spam, _p_SpamTo_p_Foo, 0, 0},
{0, 0, 0, 0}};
Previously the order was roughly in the order that the types were
parsed, but not necessarily due to the use of internal hash tables
which do not have an ordering guarantee.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
This follows PHP 8.2 deprecating dynamic features.
The new feature also provides a clean way to fix the remaining PHP
test case failure under PHP 8.2.
|
| |
| |
| |
| | |
Tests are now passing there.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These testcases were segfaulting:
prefix
director_using_member_scopes
virtual_poly
The fix here is admittedly a hack - we perform the initialisation
of EG(class_table) from CG(class_table) which PHP will do, but
hasn't yet.
PHP doesn't seem to clearly document which API calls are actually
valid in minit or other initialisation contexts, but the code we're
generating works with all PHP 7.x and PHP 8.x versions aside from PHP
8.0 so it seems this is a bug in PHP 8.0 rather than that we're doing
something invalid, and we need to work with existing PHP 8.0 releases
so this hack seems a necessary evil. It will at least have a limited
life as PHP 8.0 is only in active support until 2022-11-26, with
security support ending a year later.
Fixes #2383.
|
| |
| |
| |
| |
| |
| |
| |
| | |
In PHP 8.2 zend_operators.h contains inline code which triggers this
warning and our testsuite uses with option and -Werror.
I don't see a good way to only do this within our testsuite, but
disabling it globally like this shouldn't be problematic.
|
| |
| |
| |
| |
| | |
We need to include php.h before stdio.h (and probably before most
other libc headers).
|
| |
| |
| |
| |
| | |
The required return type has changed from int to an enum, which
gives a compiler warning when we assign a function pointer.
|
| |
| |
| |
| | |
This gives a deprecation warning with PHP 8.2.
|
| |
| |
| |
| | |
Avoid syntax deprecated in PHP 8.2.
|
| |
| |
| |
| |
| | |
I'm actively working on fixing them, but meanwhile we don't want PR
jobs failing on these.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The CI job for PHP 8.0 was relying on not specifying a version
giving us PHP 8.0, but actually it gives us 8.1 currently.
This seems too brittle, so always specify the version explicitly as
at worst it means uninstalling and reinstalling PHP packages in a
case we could avoid.
Also add PHP 8.2 testing.
See #2383
|
| |
| |
| |
| |
| | |
Avoid UTF-32 to UTF-8 conversion then get string from UTF-8
Issue #2369
|
| |
| |
| |
| |
| |
| | |
Includes the majority of patch #1484.
Excludes changes in typepass.cxx for specializations which have no effect
on the duplicate_class_name_in_ns testcase, nor the rest of the test-suite.
|
| | |
|
| |
| |
| |
| | |
Discussion #2316
|
|\ \
| | |
| | | |
Fix octave operator horzcat test
|
| | |
| | |
| | |
| | |
| | |
| | | |
Octave has more operators than C++. These operators can be overloaded for
the type swig_ref using the standard Octave Object Oriented Programming mechanism.
This is now added to the documentation.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This test was disabled with 0a0743f25cc0bbb395d03a27ac62887c8cbee5cf since
it fails with octave 7.2.0
The test function horzcat now uses a variable length argument list to fix this.
Before octave 7 it seems to be possible to call a N-argument octave function
with > N arguments without any error. With octave 7 this seems no longer to be
possible which caused the test failure.
|
| | |
| | |
| | |
| | | |
For efficiency and to fix some warnings
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Go, Guile, Racket, Scilab: Add throws typemaps for std::string so that
thrown string exception messages can be seen.
Test all language for std::string throws typemaps
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
and exception specifications for native types.
Now the raised exception contains the string value as the exception
message instead of just the C/C++ type of the exception.
R exceptions were completely swallowed beforehand
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Unfortunately the changes of 26bf86322 (Use SWIG-specific for
non-overloaded synthesized functions too, 2021-11-09) did break some
existing code bases using SWIG as they hardcoded the old wrapper
function names.
So turn this off by default and add a global variable allowing to enable
this, which can be done for a specific language only. This is ugly but,
unfortunately, there is no way to use the Language object from the C
function Swig_MethodToFunction(), so the only alternative would be to
add another parameter to it, but it already has 6 of them, so it
wouldn't really be that much better.
See #2366, #2368, #2370.
|
| |
| |
| |
| | |
To fix overloading when using these types.
|
| | |
|
| |
| |
| |
| | |
To prevent seg faults when passing #nil to these parameter types.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For implementing full move semantics when passing parameters by value.
Based on SWIGTYPE && and std::unique_ptr typemaps which implement move
semantics.
Added for all languages, but untested for: Go, Ocaml, R, Scilab (and
unlikely to be fully functional for same reasons as for std::unique_ptr
support).
Issue #999
|
| | |
|