Skip to content

Commit 5177f08

Browse files
authored
Merge pull request #163 from swig-fortran/release-v4.0.2
Merge upstream release v4.0.2 and add `+fortran` tag
2 parents 0734657 + e081ebc commit 5177f08

File tree

154 files changed

+4099
-1392
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

154 files changed

+4099
-1392
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,8 @@ Examples/ocaml/**/swigp4.ml
181181
# Octave
182182
swigexample*.oct
183183
Examples/test-suite/octave/*.oct
184+
Examples/test-suite/octave/octheaders.hpp
185+
Examples/test-suite/octave/octheaders.hpp.gch
184186

185187
# Perl5
186188
Examples/test-suite/perl5/*.pm

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ matrix:
2121
before_install:
2222
- date -u
2323
- uname -a
24-
- if test "$TRAVIS_OS_NAME" = "linux"; then lscpu && cat /proc/cpuinfo | grep "model name" && cat /proc/meminfo | grep MemTotal; fi
24+
- if test "$TRAVIS_OS_NAME" = "linux"; then lscpu; grep "model name" /proc/cpuinfo || echo 'Unknown CPU model'; grep "MemTotal" /proc/meminfo || echo 'Unknown system memory amount'; fi
2525
- if test "$TRAVIS_OS_NAME" = "osx"; then sysctl -a | grep brand_string; fi
2626
# Travis overrides CC environment with compiler predefined values
2727
- if test -n "$GCC"; then export CC="gcc-$GCC" && export CXX="g++-$GCC"; fi

ANNOUNCE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
*** ANNOUNCE: SWIG 4.0.2 (in progress) ***
1+
*** ANNOUNCE: SWIG 4.0.2 (8 Jun 2020) ***
22

33
http://www.swig.org
44

CHANGES.current

Lines changed: 143 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,147 @@ See the RELEASENOTES file for a summary of changes in each release.
44
Issue # numbers mentioned below can be found on Github. For more details, add
55
the issue number to the end of the URL: https://github.com/swig/swig/issues/
66

7-
Version 4.0.2 (in progress)
8-
===========================
7+
Version 4.0.2 (8 Jun 2020)
8+
==========================
99

10+
2020-06-07 vigsterkr
11+
[Ruby] #1717 Nil fix mangling strings
12+
13+
2020-06-07 vadz
14+
#1748 Fix doxygen comments quoting issue
15+
16+
2020-06-07 munoah
17+
#1800 Escape spaces in file paths for dependencies (-M -MM etc)
18+
19+
2020-06-06 andreas-schwab
20+
[Ruby] #1801 Fix encoding on big endian systems when wrapping std::wstring.
21+
22+
2020-05-31 kwwette
23+
[Octave] #1789 error handling improvements and return error code on exit for SWIG wrapped modules.
24+
25+
2020-05-30 msteinbeck
26+
[D] #1593 Replace broken imports when using newer versions of D.
27+
28+
2020-05-29: ZackerySpytz
29+
[Python] #1716 Performance improvements converting strings when using Python >= 3.3.
30+
31+
2020-05-28: ZackerySpytz
32+
#1776 Quite dramatically decrease run times when generating very large interface files by changing
33+
some internal memory pool sizes.
34+
35+
2020-05-28: mcfarljm
36+
#1788 Fix handling of Doxygen \endlink command.
37+
38+
2020-05-24: vapier
39+
[Javascript] #1796 Fix pkg-config invocation in configure.
40+
41+
2020-04-30: kwwette
42+
[Octave] Fix exception raising for newer Octave versions
43+
Since (at least) Octave 5.1.0, the Octave error() function now raises a C++ exception,
44+
which if uncaught immediately exits a SWIG wrapper function, bypassing any cleanup code
45+
that may appear after a "fail:" label. This patch adds a "try { ... } catch(...) { }"
46+
block around the contents of SWIG wrapper functions to first execute the cleanup code
47+
before rethrowing any exception raised. It is backward compatible with earlier versions
48+
of Octave where error() does not raise an exception, which will still branch to the
49+
"fail:" block to execute cleanup code if an error is encountered.
50+
51+
Note that the new "try { ... } catch(...) { }" block will localise any local variables
52+
used in typemaps that were NOT declared through SWIG's %typemap(...) syntax, so it's
53+
possible this could break existing SWIG wrappers which were implicitly sharing local
54+
variables between typemaps. This can be fixed, however, by declaring local variables
55+
which need to be shared between typemaps through SWIG's %typemap(...) syntax.
56+
57+
2020-02-18: ryannevell
58+
[Lua] #1728 Add support for LUA lightuserdata to SWIG_Lua_ConvertPtr.
59+
60+
2020-02-18: dmach
61+
[Ruby] #1725 Fix gcc -Wcatch-value warnings.
62+
63+
2020-02-14: treitmayr
64+
#1724 Fix wrapping of abstract user-defined conversion operators.
65+
66+
2020-02-13: ddurham2
67+
[Python] #1512 Fix memleak when using STL containers of shared_ptr objects.
68+
69+
2020-02-06: wsfulton
70+
[Python] #1673 #1674 Fix setting 'this' when extending a proxy class with __slots__.
71+
72+
2020-01-31: vadz
73+
[Ruby] #1651 Add std::auto_ptr<> typemaps.
74+
75+
2020-01-31: ZackerySpytz
76+
[Python] #1700 More robust error checking for failures in calls to Python C API:
77+
PyBytes_AsStringAndSize() and PyString_AsStringAndSize().
78+
79+
2020-01-31: vadz
80+
[Python] #1710 Fix crash parsing empty docstrings.
81+
82+
2020-01-30: Alzathar
83+
[R] #910 #914 Fix R memory leak on exception.
84+
85+
2020-01-30: richardbeare
86+
[R] #1511 Fix bug wrapping functions. These were previously incorrectly wrapped as if
87+
they were variables. This happened when 'get' or 'set' was in the name of the function
88+
or method, but sometimes also in some other circumstances. If you were using R
89+
attribute syntax to access these methods, you'll need to switch to calling them as R
90+
methods.
91+
92+
*** POTENTIAL INCOMPATIBILITY ***
93+
94+
2020-01-24: etse-dignitas, wsfulton
95+
[C#, D, Java] #1533 Fix upcasting for shared_ptr's of templated types.
96+
97+
2020-01-16: mcfarljm
98+
#1643 #1654 When using -doxygen, fix segfault when nameless parameters or vararg parameters
99+
are used.
100+
101+
2020-01-16: mcfarljm
102+
#1632 #1659 Fix newline handling for doxygen "///" comments.
103+
104+
2020-01-14: mcfarljm
105+
#1647 #1656 Fix crash handling empty doxygen comments.
106+
107+
2020-01-14: mcfarljm
108+
#1608 Improve doxygen support.
109+
- Add support for \param[] commands such as: \param[in].
110+
- Optional arguments are marked as 'optional' in pydoc.
111+
- Improve support for \code commands so that other languages are supported as code blocks.
112+
Support added for java, c and py. For example Python: \code{.py} ... \endcode
113+
- Fix doxygen handling of \em and \p tags for Python.
114+
115+
2020-01-13: wsfulton
116+
[Python] #1595 Python -builtin constructors silently ignored keyword arguments.
117+
Instead of silenty ignoring them, now a "TypeError: f() takes no keyword arguments"
118+
exception is thrown if keyword arguments are used. Hence constructors and normal methods/
119+
functions behave in the same way. Note, -keyword should be used with -builtin to obtain
120+
keyword argument support.
121+
122+
2020-01-05: jschueller shadchin
123+
[Python] #1670 #1696 Add missing field initializers introduced in python 3.8:
124+
tp_vectorcall and tp_print.
125+
126+
2020-01-05: friedrichatgc
127+
[Octave] #1688 Change swig_this() to use size_t instead of long for compatibility
128+
with Windows 64 bit.
129+
130+
2020-01-05: treitmayr
131+
[Ruby] #1692 #1689 Add support for Ruby 2.7
132+
133+
2019-12-30: treitmayr
134+
[Ruby] #1653 #1668 Fix code generated when using -globalmodule option.
135+
136+
2019-12-29: ZackerySpytz
137+
[OCaml] #1686 Fix compilation errors with OCaml 4.09.0.
138+
139+
2019-12-10: wsfulton
140+
#1679 Fix parsing of C++11 identifiers with special meaning (final and override) when
141+
they are used as part of the scope name of an identifier, such as a namespace name.
142+
143+
2019-11-26: wsfulton
144+
[C#] #1628 'out' or 'ref' used in a cstype typemap was not always stripped out in parts
145+
of director code generation.
146+
147+
2019-11-01: wsfulton
148+
[Python] #1595 Fix bug in support for keyword arguments (kwargs feature or -keyword)
149+
when using -builtin. The fix is in the argument error checking when wrapping zero
150+
argument constructors only.

Doc/Manual/CSharp.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,13 @@ <H2><a name="CSharp_introduction">22.1 Introduction</a></H2>
6666
It is also better suited for robust production environments due to the Managed C++ flaw called the
6767
<a href="https://msdn.microsoft.com/en-us/ie/aa290048(v=vs.94)">Mixed DLL Loading Problem</a>.
6868
SWIG C# works equally well on non-Microsoft operating systems such as Linux, Solaris and Apple Mac using
69-
<a href="https://www.mono-project.com/Main_Page/">Mono</a> and <a href="http://www.dotgnu.org/pnet.html">Portable.NET</a>.
69+
<a href="https://www.mono-project.com/Main_Page/">Mono</a>.
70+
</p>
71+
72+
<p>
73+
SWIG 3 and later requires .NET 2.0 at a minimum.
74+
There are some minor exceptions, where the minimum required is .NET 4.0.
75+
This is when using the <tt>std::complex</tt> and <tt>std::list</tt> STL containers.
7076
</p>
7177

7278
<p>

Doc/Manual/Contents.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1580,6 +1580,9 @@ <h3><a href="R.html#R">34 SWIG and R</a></h3>
15801580
<li><a href="R.html#R_nn5">General policy</a>
15811581
<li><a href="R.html#R_language_conventions">Language conventions</a>
15821582
<li><a href="R.html#R_nn6">C++ classes</a>
1583+
<ul>
1584+
<li><a href="R.html#R_class_examples">Examples</a>
1585+
</ul>
15831586
<li><a href="R.html#R_nn7">Enumerations</a>
15841587
</ul>
15851588
</div>

0 commit comments

Comments
 (0)