You can subscribe to this list here.
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(64) |
Dec
(161) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(376) |
Feb
(195) |
Mar
(127) |
Apr
(30) |
May
(79) |
Jun
(83) |
Jul
(42) |
Aug
(39) |
Sep
(82) |
Oct
(102) |
Nov
(229) |
Dec
(76) |
| 2007 |
Jan
(62) |
Feb
(29) |
Mar
(83) |
Apr
(92) |
May
(84) |
Jun
(58) |
Jul
(36) |
Aug
(63) |
Sep
(131) |
Oct
(160) |
Nov
(46) |
Dec
(67) |
| 2008 |
Jan
(72) |
Feb
(82) |
Mar
(124) |
Apr
(144) |
May
(73) |
Jun
(38) |
Jul
(101) |
Aug
(26) |
Sep
(96) |
Oct
(35) |
Nov
(53) |
Dec
(92) |
| 2009 |
Jan
(92) |
Feb
(48) |
Mar
(90) |
Apr
(50) |
May
(104) |
Jun
(110) |
Jul
(136) |
Aug
(99) |
Sep
(80) |
Oct
(38) |
Nov
(106) |
Dec
(48) |
| 2010 |
Jan
(33) |
Feb
(70) |
Mar
(41) |
Apr
(54) |
May
(97) |
Jun
(76) |
Jul
(61) |
Aug
(27) |
Sep
(64) |
Oct
(74) |
Nov
(35) |
Dec
(55) |
| 2011 |
Jan
(66) |
Feb
(113) |
Mar
(101) |
Apr
(71) |
May
(93) |
Jun
(36) |
Jul
(30) |
Aug
(55) |
Sep
(30) |
Oct
(51) |
Nov
(59) |
Dec
(43) |
| 2012 |
Jan
(59) |
Feb
(32) |
Mar
(232) |
Apr
(174) |
May
(142) |
Jun
(38) |
Jul
(127) |
Aug
(99) |
Sep
(32) |
Oct
(8) |
Nov
(28) |
Dec
(144) |
| 2013 |
Jan
(105) |
Feb
(25) |
Mar
(70) |
Apr
(69) |
May
(40) |
Jun
(33) |
Jul
(20) |
Aug
(31) |
Sep
(82) |
Oct
(42) |
Nov
(78) |
Dec
(72) |
| 2014 |
Jan
(62) |
Feb
(68) |
Mar
(39) |
Apr
(54) |
May
(90) |
Jun
(87) |
Jul
(42) |
Aug
(76) |
Sep
(44) |
Oct
(49) |
Nov
(5) |
Dec
(28) |
| 2015 |
Jan
(33) |
Feb
(13) |
Mar
(12) |
Apr
(17) |
May
(15) |
Jun
(22) |
Jul
(16) |
Aug
(27) |
Sep
(8) |
Oct
(9) |
Nov
(14) |
Dec
(9) |
| 2016 |
Jan
(22) |
Feb
(15) |
Mar
(6) |
Apr
(6) |
May
(22) |
Jun
(83) |
Jul
(5) |
Aug
(9) |
Sep
(13) |
Oct
|
Nov
(31) |
Dec
(18) |
| 2017 |
Jan
(9) |
Feb
(15) |
Mar
(11) |
Apr
(11) |
May
(9) |
Jun
(10) |
Jul
(2) |
Aug
(1) |
Sep
(5) |
Oct
(4) |
Nov
(3) |
Dec
(9) |
| 2018 |
Jan
(3) |
Feb
(6) |
Mar
(1) |
Apr
(3) |
May
(8) |
Jun
(2) |
Jul
(3) |
Aug
(6) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2019 |
Jan
(3) |
Feb
(19) |
Mar
(11) |
Apr
(9) |
May
(7) |
Jun
(14) |
Jul
(1) |
Aug
(7) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2020 |
Jan
(3) |
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
(7) |
Jul
|
Aug
(3) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
| 2021 |
Jan
(8) |
Feb
(1) |
Mar
(11) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(2) |
Sep
(4) |
Oct
(9) |
Nov
(14) |
Dec
|
| 2022 |
Jan
(1) |
Feb
(5) |
Mar
(2) |
Apr
|
May
|
Jun
(3) |
Jul
(2) |
Aug
|
Sep
(7) |
Oct
(9) |
Nov
(5) |
Dec
(1) |
| 2023 |
Jan
(2) |
Feb
|
Mar
|
Apr
(2) |
May
(6) |
Jun
(1) |
Jul
|
Aug
(4) |
Sep
(4) |
Oct
|
Nov
(2) |
Dec
(5) |
| 2024 |
Jan
(11) |
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(9) |
Oct
(27) |
Nov
(9) |
Dec
(2) |
| 2025 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
(3) |
May
|
Jun
(1) |
Jul
(3) |
Aug
(2) |
Sep
(9) |
Oct
(4) |
Nov
|
Dec
|
|
From: William S F. <ws...@fu...> - 2025-10-20 18:13:28
|
*** ANNOUNCE: SWIG 4.4.0 (20 Oct 2025) *** https://www.swig.org We're pleased to announce SWIG-4.4.0, the latest SWIG release. What is SWIG? ============= SWIG is a software development tool that reads C/C++ header files and generates the wrapper code needed to make C and C++ code accessible from other programming languages including Perl, Python, Tcl, Ruby, PHP, C#, Go, Java, Javascript, Lua, Scheme (Guile), D, Ocaml, Octave, R, Scilab. SWIG can also export its parse tree in the form of XML. Major applications of SWIG include generation of scripting language extension modules, rapid prototyping, testing, and user interface development for large C/C++ systems. Release Notes ============= Detailed release notes are available with the release and are also published on the SWIG web site at https://swig.org/release.html. Availability ============ The release is available for download on Sourceforge at https://prdownloads.sourceforge.net/swig/swig-4.4.0.tar.gz A Windows version is also available at https://prdownloads.sourceforge.net/swig/swigwin-4.4.0.zip Please report problems with this release to the swig-devel mailing list, details at https://www.swig.org/mail.html. --- The SWIG Developers |
|
From: William S F. <ws...@fu...> - 2025-10-15 07:03:34
|
On Wed, 15 Oct 2025 at 00:08, Patrice Dumas <per...@fr...> wrote: > On Tue, Oct 14, 2025 at 09:02:18AM +0100, William S Fulton wrote: > > I just have https://github.com/swig/swig/issues/3266 in the list of > > unresolved issues in https://github.com/swig/swig/milestone/10 for the > > 4.4.0 release. I think I can resolve that later this week, in which case > I > > would like to do the actual release on the weekend. If there is any other > > minimally impacting change, now is the chance to merge to master. > > What I reported the other day looks minimal to me, but you may disagree. > Here it is again without the wrong point. > > Here is a patch to use void in some C function definition to specify > that the function does not take argument, replacing empty parentheses. > My understanding is that one almost never want empty parentheses > as it means something along that the argument can be anything, and not > that the function does not take arguments. > > I got one of those in the C generated by SWIG for Perl, and I also > propose modification for a few others. The tests for c, perl5 and python > pass with the changes. > > This kind of issue is shown by gcc when called with -Wstrict-prototypes. > There are more similar issues reported by something like > make check CFLAGS=-Wstrict-prototypes > > From a brief look, these do not seem to be intentional. > There are in particular *SWIG_CException_get_pending and > *SWIG_CException_reset_pending, but I could not find where they were > generated. Some others look like functions defined in tests, but some > could be generated by SWIG. > > > A changelog entry for the patch could be something along > > Use void in C function definitions not taking arguments > > -- > Pat > Thanks, applied in de640927515eba2c9944b8e516455c916a82e261. We should use -Wstrict-prototypes for testing, however, there is more work to be done in the tests to make them warning free, then we can add this compiler flag into Tools/testflags.py. Github pull requests welcome! William |
|
From: Patrice D. <per...@fr...> - 2025-10-14 23:08:36
|
On Tue, Oct 14, 2025 at 09:02:18AM +0100, William S Fulton wrote: > I just have https://github.com/swig/swig/issues/3266 in the list of > unresolved issues in https://github.com/swig/swig/milestone/10 for the > 4.4.0 release. I think I can resolve that later this week, in which case I > would like to do the actual release on the weekend. If there is any other > minimally impacting change, now is the chance to merge to master. What I reported the other day looks minimal to me, but you may disagree. Here it is again without the wrong point. Here is a patch to use void in some C function definition to specify that the function does not take argument, replacing empty parentheses. My understanding is that one almost never want empty parentheses as it means something along that the argument can be anything, and not that the function does not take arguments. I got one of those in the C generated by SWIG for Perl, and I also propose modification for a few others. The tests for c, perl5 and python pass with the changes. This kind of issue is shown by gcc when called with -Wstrict-prototypes. There are more similar issues reported by something like make check CFLAGS=-Wstrict-prototypes >From a brief look, these do not seem to be intentional. There are in particular *SWIG_CException_get_pending and *SWIG_CException_reset_pending, but I could not find where they were generated. Some others look like functions defined in tests, but some could be generated by SWIG. A changelog entry for the patch could be something along Use void in C function definitions not taking arguments -- Pat |
|
From: William S F. <ws...@fu...> - 2025-10-14 08:58:26
|
I just have https://github.com/swig/swig/issues/3266 in the list of unresolved issues in https://github.com/swig/swig/milestone/10 for the 4.4.0 release. I think I can resolve that later this week, in which case I would like to do the actual release on the weekend. If there is any other minimally impacting change, now is the chance to merge to master. William On Fri, 5 Sept 2025 at 12:24, Jitka Plesnikova via Swig-devel < swi...@li...> wrote: > > > On 9/4/25 23:11, Olly Betts wrote: > > Some I can answer. Probably useful to open issues for anything we can't > easily sort out here. > > Thank you for the quick response. I've created pull requests with fixes > for libCombine and pyscard. I will create issues for the remaining errors. > Regards, Jitka > > On Thu, Sep 04, 2025 at 11:46:07AM +0200, Jitka Plesnikova via Swig-devel wrote: > > ### libCombine > > /builddir/build/BUILD/libCombine-0.2.20-build/libCombine-0.2.20/redhat-linux-build/src/bindings/python/libcombine_wrap.cpp:7858:7: error: ?$function? was not declared in this scope; did you mean ?PyCFunction?? > 7858 | $function > | ^~~~~~~~~ > | PyCFunction > > Finally removed having been deprecated since 2008; replace with $action > (search for $funtion in CHANGES.current). > > > ### pyscard > > src/smartcard/scard/scard_wrap.c: In function ?_wrap_SCardAddReaderToGroup?: > src/smartcard/scard/scard_wrap.c:4534:5: error: unknown type name ?$function?; did you mean ?PyCFunction?? > 4534 | $function > | ^~~~~~~~~ > | PyCFunction > > Ditto. > > > ### subversion > > subversion/bindings/swig/python/svn_client.c: In function '_wrap_svn_client_get_simple_prompt_provider': > subversion/bindings/swig/python/svn_client.c:4259:7: error: implicit declaration of function 'SWIG_Python_TypeError'; did you mean 'SWIG_Python_TypeQuery'? [-Wimplicit-function-declaration] > 4259 | SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2); > | ^~~~~~~~~~~~~~~~~~~~~ > | SWIG_Python_TypeQuery > > Removed in 9c2a1bc39c43dfe8958af36a5168412c67b467a9 as "not used". Not > sure what the replacement in user typemaps would be. We probably should > note this removal in CHANGES.current along with a suggestion for how to > deal with such uses. William? > > > ### unbound > > libunbound/python/libunbound_wrap.c: In function '_wrap_ub_resolve': > libunbound/python/libunbound_wrap.c:5889:3: error: unknown type name '$function'; did you mean 'PyCFunction'? > 5889 | $function > | ^~~~~~~~~ > | PyCFunction > > Ditto. > > Cheers, > Olly > > > > -- > Jitka Plesnikova > Senior Software Engineer > Red Hat > > _______________________________________________ > Swig-devel mailing list > Swi...@li... > https://lists.sourceforge.net/lists/listinfo/swig-devel > |
|
From: William S F. <ws...@fu...> - 2025-09-11 13:42:08
|
On Tue, 9 Sept 2025 at 22:09, Vadim Zeitlin <vz...@ze...> wrote:
> On Tue, 9 Sep 2025 14:45:46 +0100 William S Fulton <
> ws...@fu...> wrote:
>
> WSF> Yes, very welcome. I have taken the same approach too and fail the
> build if
> WSF> some SWIGTYPE_xxx.java or SWIGTYPE_xxx.cs files are generated. But
> clearly
> WSF> this only works if wrappers include one of java or C# target
> languages so
> WSF> is somewhat limited.
>
> Yes, exactly.
>
> WSF> Would be nice to have it in the warning system to selectively
> suppress/add
> WSF> warnings for certain types. The warning system is already very
> powerful
> WSF> with selective suppressions and hidings and turning into errors. The
> WSF> problem is the best part of the warning system flexibility works off
> types
> WSF> that have been parsed, so becomes a catch 22 in this instance given
> the
> WSF> idea is to warn about unknown types. I'll have a think and get back.
>
> I was thinking about a global warning (I think there are already some,
> aren't there?) because I indeed don't see any way to attach a warning to
> unknown types. If we do agree to implement this as a warning, I'd like to
> know if you prefer it to be enabled or disabled by default
> If we decide to implement this as a new option, it would be somewhat
> simpler as it would, of course, be off by default and would result in an
> error if this new option is used and an unknown type is encountered.
>
>
>
Okay, let's try as a new global warning, off by default. Off by default
will require adding it to the list of the extra warnings:
$ swig -help | grep Wextra
-Wall - Remove all warning suppression, also implies -Wextra
-Wextra - Adds the following additional warnings:
309,403,405,512,321,322
Unfortunately there are a number of other unknown type related warnings
that would be nice to suppress by naming the unknown type in %warnfilter,
but this could be tackled at a later stage as a general enhancement to
suppressing unknown type related warnings. I suspect your implementation of
the new warning would be a step in that direction as the unknown types,
once detected, could be added into an unknown types list. BTW, which stage
of parsing do you intend to add the code to add in the new warning?
(but I'd also
> like to add an option to make selected warnings into errors in any case, as
> I already wrote).
A user, after turning on the new warning, could use the normal warning /
error machinery to turn the new warning into an error by adding -Werror.
This does of course require a warning free code base in the first place as
you point out, SWIG does have a way to treat specific warnings as errors.
For this we'd need to implement the equivalent to gcc's -Werror= option. I
think this needs a bit of design and thought, such enhancing #pragma to do
the same. I don't intimately know all the gcc warning flag options, but
they probably should be thoroughly examined for inspiration. Thinking of
what would additionally would be documented in Warnings.html could make up
a proposal.
William
|
|
From: Vadim Z. <vz...@ze...> - 2025-09-09 21:09:27
|
On Tue, 9 Sep 2025 14:45:46 +0100 William S Fulton <ws...@fu...> wrote: WSF> Yes, very welcome. I have taken the same approach too and fail the build if WSF> some SWIGTYPE_xxx.java or SWIGTYPE_xxx.cs files are generated. But clearly WSF> this only works if wrappers include one of java or C# target languages so WSF> is somewhat limited. Yes, exactly. WSF> Would be nice to have it in the warning system to selectively suppress/add WSF> warnings for certain types. The warning system is already very powerful WSF> with selective suppressions and hidings and turning into errors. The WSF> problem is the best part of the warning system flexibility works off types WSF> that have been parsed, so becomes a catch 22 in this instance given the WSF> idea is to warn about unknown types. I'll have a think and get back. I was thinking about a global warning (I think there are already some, aren't there?) because I indeed don't see any way to attach a warning to unknown types. If we do agree to implement this as a warning, I'd like to know if you prefer it to be enabled or disabled by default (but I'd also like to add an option to make selected warnings into errors in any case, as I already wrote). If we decide to implement this as a new option, it would be somewhat simpler as it would, of course, be off by default and would result in an error if this new option is used and an unknown type is encountered. But I'll wait to see if you have any better ideas. Thanks in advance! VZ |
|
From: William S F. <ws...@fu...> - 2025-09-09 14:49:55
|
Yes, very welcome. I have taken the same approach too and fail the build if
some SWIGTYPE_xxx.java or SWIGTYPE_xxx.cs files are generated. But clearly
this only works if wrappers include one of java or C# target languages so
is somewhat limited.
Would be nice to have it in the warning system to selectively suppress/add
warnings for certain types. The warning system is already very powerful
with selective suppressions and hidings and turning into errors. The
problem is the best part of the warning system flexibility works off types
that have been parsed, so becomes a catch 22 in this instance given the
idea is to warn about unknown types. I'll have a think and get back.
William
On Sat, 6 Sept 2025 at 21:18, Vadim Zeitlin <vz...@ze...> wrote:
> Hello,
>
> Whenever I use SWIG I find myself adding a post-compile step which checks
> that no types have been wrapped as "opaque types" using SWIGTYPE_p_xxx
> names because I never want this to happen and it always indicates some
> error in my .i file.
>
> And while doing it in a separate build step is not that difficult, it's
> still an extra thing to do and so I'd like to propose adding an option
> ("-nounknown"?) which would exit with an error if SWIG detects any such
> types. Alternatively, we could add a warning instead, but this warning
> would probably need to be disabled by default and I'd also like to add a
> possibility to turn just the specified warning into an error then (e.g.
> "-w!599" or something like this).
>
> Would a PR implementing a new option or a new warning be welcome?
>
> Thanks in advance for your thoughts,
> VZ
> _______________________________________________
> Swig-devel mailing list
> Swi...@li...
> https://lists.sourceforge.net/lists/listinfo/swig-devel
>
|
|
From: Vadim Z. <vz...@ze...> - 2025-09-06 20:17:55
|
Hello,
Whenever I use SWIG I find myself adding a post-compile step which checks
that no types have been wrapped as "opaque types" using SWIGTYPE_p_xxx
names because I never want this to happen and it always indicates some
error in my .i file.
And while doing it in a separate build step is not that difficult, it's
still an extra thing to do and so I'd like to propose adding an option
("-nounknown"?) which would exit with an error if SWIG detects any such
types. Alternatively, we could add a warning instead, but this warning
would probably need to be disabled by default and I'd also like to add a
possibility to turn just the specified warning into an error then (e.g.
"-w!599" or something like this).
Would a PR implementing a new option or a new warning be welcome?
Thanks in advance for your thoughts,
VZ
|
|
From: Jitka P. <jpl...@re...> - 2025-09-05 11:24:02
|
On 9/4/25 23:11, Olly Betts wrote: > Some I can answer. Probably useful to open issues for anything we can't > easily sort out here. Thank you for the quick response. I've created pull requests with fixes for libCombine and pyscard. I will create issues for the remaining errors. Regards, Jitka > On Thu, Sep 04, 2025 at 11:46:07AM +0200, Jitka Plesnikova via Swig-devel wrote: >> ### libCombine >> >> /builddir/build/BUILD/libCombine-0.2.20-build/libCombine-0.2.20/redhat-linux-build/src/bindings/python/libcombine_wrap.cpp:7858:7: error: ?$function? was not declared in this scope; did you mean ?PyCFunction?? >> 7858 | $function >> | ^~~~~~~~~ >> | PyCFunction > Finally removed having been deprecated since 2008; replace with $action > (search for $funtion in CHANGES.current). > >> ### pyscard >> >> src/smartcard/scard/scard_wrap.c: In function ?_wrap_SCardAddReaderToGroup?: >> src/smartcard/scard/scard_wrap.c:4534:5: error: unknown type name ?$function?; did you mean ?PyCFunction?? >> 4534 | $function >> | ^~~~~~~~~ >> | PyCFunction > Ditto. > >> ### subversion >> >> subversion/bindings/swig/python/svn_client.c: In function '_wrap_svn_client_get_simple_prompt_provider': >> subversion/bindings/swig/python/svn_client.c:4259:7: error: implicit declaration of function 'SWIG_Python_TypeError'; did you mean 'SWIG_Python_TypeQuery'? [-Wimplicit-function-declaration] >> 4259 | SWIG_Python_TypeError(SWIG_TypePrettyName(SWIGTYPE_p_apr_pool_t), obj2); >> | ^~~~~~~~~~~~~~~~~~~~~ >> | SWIG_Python_TypeQuery > Removed in 9c2a1bc39c43dfe8958af36a5168412c67b467a9 as "not used". Not > sure what the replacement in user typemaps would be. We probably should > note this removal in CHANGES.current along with a suggestion for how to > deal with such uses. William? > >> ### unbound >> >> libunbound/python/libunbound_wrap.c: In function '_wrap_ub_resolve': >> libunbound/python/libunbound_wrap.c:5889:3: error: unknown type name '$function'; did you mean 'PyCFunction'? >> 5889 | $function >> | ^~~~~~~~~ >> | PyCFunction > Ditto. > > Cheers, > Olly > -- Jitka Plesnikova Senior Software Engineer Red Hat |
|
From: Jitka P. <jpl...@re...> - 2025-09-04 09:46:25
|
Hi, I ran scratch rebuild of SWIG dependencies that we had in Fedora. For comparison, I ran a rebuild against SWIG 4.3.0, which we have in Fedora, and against SWIG 4.4.0 from commit b440f9eeb. You can see difference between builds here: * swig 4.3.0 https://copr.fedorainfracloud.org/coprs/jplesnik/swig-rebuild/monitor/ * swig 4.4.0 https://copr.fedorainfracloud.org/coprs/jplesnik/swig-test/monitor/ There are some packages that are failing only with the new version: * libCombine * nordugrid-arc * plplot * pygsl * pyscard * subversion * unbound The errors causing these failures are in the attached file for each package. The complete build logs can be found here: https://jplesnik.fedorapeople.org/swig44/ Could you please help me find a fix for these? Should I create tickets for them? Regards, Jitka On 8/29/25 09:02, William S Fulton wrote: > I would like to release swig-4.4 during September prior to the > python-3.14 release. The SWIG release is overdue now with the target > date set on the milestone https://github.com/swig/swig/milestone/10. I > don't think I can contribute much to any of the issues on the > milestone, except maybe taking over #3189 #3192 if that helps you > Olly. Olly, are any of these others a blocker and doable by you? Can > we aim for something like 28 Sep? If not let's bump them off the list. > > Otherwise my plan is to work on getting python -builtin to work with > the limited API if nothing else gets in the way. > > Please add any essential tickets to the milestone. > > William > > > _______________________________________________ > Swig-devel mailing list > Swi...@li... > https://lists.sourceforge.net/lists/listinfo/swig-devel -- Jitka Plesnikova Senior Software Engineer Red Hat |
|
From: Patrice D. <per...@fr...> - 2025-09-02 07:37:55
|
On Tue, Sep 02, 2025 at 01:12:22AM -0000, Olly Betts via Swig-devel wrote: > On 2025-07-29, Patrice Dumas wrote: > > This kind of issue is shown by gcc when called with -Wstrict-prototypes. > > If I recall well, empty parentheses in functions definitions should > > become an error in the default case some day, as this construct has > > become invalid in the most recent C standard. > > I don't think your recollection is correct. Indeed, I had erroneously thought that empty parentheses were lumped in Old-style (K&R) function definition. -- Pat |
|
From: Olly B. <ol...@su...> - 2025-09-02 01:27:11
|
On 2025-08-29, William S Fulton <ws...@fu...> wrote: > I would like to release swig-4.4 during September prior to the python-3.14 > release. The SWIG release is overdue now with the target date set on the > milestone https://github.com/swig/swig/milestone/10. I don't think I can > contribute much to any of the issues on the milestone, except maybe taking > over #3189 #3192 if that helps you Olly. That would be helpful - I'm unclear what you want the solution to look like, and no longer really have any of the context in my head as I last looked at it nearly 2 months ago. > Olly, are any of these others a > blocker and doable by you? Can we aim for something like 28 Sep? If not > let's bump them off the list. I'll review what's on the milestone. Cheers, Olly |
|
From: Olly B. <ol...@su...> - 2025-09-02 01:12:37
|
On 2025-07-29, Patrice Dumas wrote: > This kind of issue is shown by gcc when called with -Wstrict-prototypes. > If I recall well, empty parentheses in functions definitions should > become an error in the default case some day, as this construct has > become invalid in the most recent C standard. I don't think your recollection is correct. C23 made a C function declaration without arguments equivalent to one using `void` (which aligns C23 with C++). https://en.cppreference.com/w/c/language/function_declaration.html says (see case 3): | A new style function declaration equivalent to the parameter-list | void(since C23). The patch seems reasonable as explicit `void` means a declaration acts as a prototype for both older and newer C standards, but the justification that this may break in the future is invalid - this change is only actually useful for C17 and earlier. Cheers, Olly |
|
From: William S F. <ws...@fu...> - 2025-08-29 08:45:36
|
I would like to release swig-4.4 during September prior to the python-3.14 release. The SWIG release is overdue now with the target date set on the milestone https://github.com/swig/swig/milestone/10. I don't think I can contribute much to any of the issues on the milestone, except maybe taking over #3189 #3192 if that helps you Olly. Olly, are any of these others a blocker and doable by you? Can we aim for something like 28 Sep? If not let's bump them off the list. Otherwise my plan is to work on getting python -builtin to work with the limited API if nothing else gets in the way. Please add any essential tickets to the milestone. William |
|
From: John P. <jo...@ev...> - 2025-08-13 20:05:15
|
The Tcladu project: https://github.com/johnpeck/tcladu ...uses SWIG to create a Tcl interface to the ADU100 from Ontrak Control Systems https://www.ontrak.net/ADU100.htm Thank you to everyone for your work developing SWIG! |
|
From: William S F. <ws...@fu...> - 2025-07-29 21:16:00
|
Hi Patrice Patch looks fine. We usually accept submissions via github nowadays, details on https://swig.org/svn.html, but if that is too much let me know. You may want to also add this flag to Tools/testflags.py so that the test-suite flushes out future regressions. William On Tue, 29 Jul 2025 at 20:05, Patrice Dumas via Swig-devel < swi...@li...> wrote: > Hello, > > Here is a patch to use void in some C function definition to specify > that the function does not take argument, replacing empty parentheses. > My understanding of this is that you almost never want empty parentheses > as it means something along that the argument can be anything, and not > that the function does not take arguments. > > This kind of issue is shown by gcc when called with -Wstrict-prototypes. > If I recall well, empty parentheses in functions definitions should > become an error in the default case some day, as this construct has > become invalid in the most recent C standard. > > I got one of those in the C generated by SWIG for Perl, and I also > propose modification for a few others. The tests for c, perl5 and python > pass with the changes. > > There are more similar issues reported by something like > make check CFLAGS=-Wstrict-prototypes > > From a brief look, these do not seem to be intentional. > There are in particular *SWIG_CException_get_pending and > *SWIG_CException_reset_pending, but I could not find where they were > generated. Some others look like functions defined in tests, but some > could be generated by SWIG. > > > A changelog entry for the patch could be something along > > Use void in C function definitions not taking arguments > > -- > Pat > _______________________________________________ > Swig-devel mailing list > Swi...@li... > https://lists.sourceforge.net/lists/listinfo/swig-devel > |
|
From: Patrice D. <per...@fr...> - 2025-07-29 19:04:59
|
Hello, Here is a patch to use void in some C function definition to specify that the function does not take argument, replacing empty parentheses. My understanding of this is that you almost never want empty parentheses as it means something along that the argument can be anything, and not that the function does not take arguments. This kind of issue is shown by gcc when called with -Wstrict-prototypes. If I recall well, empty parentheses in functions definitions should become an error in the default case some day, as this construct has become invalid in the most recent C standard. I got one of those in the C generated by SWIG for Perl, and I also propose modification for a few others. The tests for c, perl5 and python pass with the changes. There are more similar issues reported by something like make check CFLAGS=-Wstrict-prototypes >From a brief look, these do not seem to be intentional. There are in particular *SWIG_CException_get_pending and *SWIG_CException_reset_pending, but I could not find where they were generated. Some others look like functions defined in tests, but some could be generated by SWIG. A changelog entry for the patch could be something along Use void in C function definitions not taking arguments -- Pat |
|
From: Mika R. <mik...@ou...> - 2025-07-21 13:26:37
|
Friendly ping.
I still think this would be an improvement to writing java wrappers. Happy
to rework according to feedback.
Mika
On Fri, 3 Jan 2025 at 15:50, Mika Raento <mik...@ou...> wrote:
> Friendly ping!
>
> I'd appreciate guidance on how to make progress with this change. I do
> think it makes writing correct java wrappers much easier. I'm willing to
> spend time to improve it where necessary.
>
> Mika
>
> On Mon, Dec 2, 2024 at 7:30 PM Mika Raento <mik...@ou...>
> wrote:
>
>> Dear swig-devel,
>>
>> I'd like to propose adding the SWIG_fail feature to the java target
>> language's code generation. Currently it is quite easy to leak memory in
>> java bindings, as typival early exit code will skip freearg typemaps. (The
>> specific motivation for my case was the memory leak in
>> realm-kotlin's SWIG wrapper, see
>> https://github.com/realm/realm-kotlin/pull/1854. That wrapper can be
>> fixed in other ways but it would be nice to use SWIG_fail there).
>>
>> I've drafted a PR with the code, documentation and test changes:
>> https://github.com/swig/swig/pull/3079 for discussion on the specifics.
>>
>> I guess the main downside is that this will undoubtedly cause some
>> breakage somewhere as it changes the behavior of SWIG_exception for Java,
>> introduces the 'fail:' label that users may have used themselves and adds a
>> new enclosing block for the 'meat' of the generated code so that the goto
>> doesn't skip stack variable initialization.
>>
>> Any guidance on how to make the change less likely to cause breakage
>> would be appreciated.
>>
>> Best,
>> Mika Raento
>>
>
>
> --
>
> Mika Raento
>
>
>
--
Mika Raento
|
|
From: William S F. <ws...@fu...> - 2025-06-27 18:58:56
|
Hi Vincent I made numerous commits to make the SWIG generated code warning free for gcc's -Wunused-variable with a few exceptions. You can see these leading up to https://github.com/swig/swig/commits/1f8684eb540d5d7c63fe7d5c3853990dd2316999/. Scilab is one of the exceptions that I was unable to sort. Could you please take a look? I think some of the char array typemaps are incomplete and the cause of the majority of the warnings. You can check by simply running the test-suite as follows: make check-scilab-test-suite CXXFLAGS="-Wunused-variable -std=c++20" CFLAGS="-Wunused-variable" Regards William |
|
From: William S F. <ws...@fu...> - 2025-04-15 22:16:22
|
*** ANNOUNCE: SWIG 4.3.1 (15 Apr 2025) *** https://www.swig.org We're pleased to announce SWIG-4.3.1, the latest SWIG release. What is SWIG? ============= SWIG is a software development tool that reads C/C++ header files and generates the wrapper code needed to make C and C++ code accessible from other programming languages including Perl, Python, Tcl, Ruby, PHP, C#, Go, Java, Javascript, Lua, Scheme (Guile, MzScheme), D, Ocaml, Octave, R, Scilab. SWIG can also export its parse tree in the form of XML. Major applications of SWIG include generation of scripting language extension modules, rapid prototyping, testing, and user interface development for large C/C++ systems. Release Notes ============= Detailed release notes are available with the release and are also published on the SWIG web site at https://swig.org/release.html. Availability ============ The release is available for download on Sourceforge at https://prdownloads.sourceforge.net/swig/swig-4.3.1.tar.gz A Windows version is also available at https://prdownloads.sourceforge.net/swig/swigwin-4.3.1.zip Please report problems with this release to the swig-devel mailing list, details at https://www.swig.org/mail.html. --- The SWIG Developers |
|
From: William S F. <ws...@fu...> - 2025-04-13 19:57:29
|
I have not been feeling well, so will get to this later this week. William On Thu, 10 Apr 2025 at 08:49, William S Fulton <ws...@fu...> wrote: > I plan to make the 4.3.1 release this weekend. Below I've listed all the > commits in master since 4.3.0 and marked with 'y' the commits I plan to > cherry-pick onto the release branch. I've also prefixed with there is an > associated issue number. I'm only adding regression fixes and really low > risk non-essential changes. Please let me know if there are other candidate > commits. > > #3067 y 61f0bbe97 Python external_runtime example fixup > #3067 y 095429213 Add external runtime Python example using typemap > #3067 y 56afa6e6d Fix Python limited API and external runtime > 124d8a8c3 Test code for removed methods from std::list for > compatibility with java.util.List > 34b71a3bb Fix javac -Xlint warning [this-escape] - JDK 21 in > director constructors > ef0d38bff Support JDK 21 and std::list > 83be871ee Remove unused JAVA_TOOLS_JAR make variable > aaeef05f7 Fix javac -Xlint warning [this-escape] - JDK 21 in STL > containers > 390da4d67 Add Java 21 testing > 37caf2e66 warning fix for cdata Java wrappers for visual c++ > af6581727 Fix javac -Xlint warnings: > c2ad64d0a Java compiler lint warnings fixes in test code > a16e3cb8c Add Java compiler linting checks javac -Xlint > 6b69a05b4 Remove typemaps for signed/usigned wchar_t > c3b29f87f Update manual section numbers > f3ea85af0 [MzScheme/Racket] Drop support > 0db0a3994 Omit empty deprecated/experiemtnal lists > 644c860de remove redundant casts to const char* after using > GetStringUTFChars function > #3149 y 3b39c8080 CHANGES.current: Document previous commit > #3149 y 4bec60866 Update octheaders.hpp > y 62d492577 Pin cccl version to 1.4 > 86f061cec User specified CC/CXX detection fix > a5568a728 deprecated boost atomic_count.hpp > 837cc1c06 int conversion warnings > y fedb45cf4 Upgrade to cccl-1.4 > df836dee6 configure: Leave overridden CC/CXX values alone > f66ea491e Update AX_CXX_COMPILE_STDCXX to upstream serial 25 > 34d0b35cc Remove can fail for Windows GHA > 4811cb2a2 GHA update for ubuntu-20.04 EOL (#3133) > 0cc821269 Strip additional -std flags that autoconf now adds to CC > and CXX > e0ecea47b [ci] Enable Go 1.24 testing > e7f50af67 [guile] Add CHANGES entry for ports.i fix > e11f216a7 [guile] Fix ports.i > 2f8137b0f [ci] Mark failing windows.yml jobs as continue-on-error > e42b3ca60 Remove unused SKIP_PYTHON3 > 651449ee0 [Python] Remove left-over check for Python 1.x > 6dbf867d2 Fix handling of corner cases by previous change > 4a0372aac Improve parsing multi-line expr via skip_balanced() > 1bff64d5e Don't test against Go 1.24 for now. It doesn't work with > the default CFLAGS. > 959dbd4dd Test against Go versions 1.20 and 1.24. Stop testing old > Go versions. > 26b0911a7 Add support for $n special variable expansion in the > names of typemap local variables > fe3a7af85 Revert "[Go] Use unsafe.Slice and unsafe.String in Go > fragments" > ff5c118aa [Go] Use unsafe.Slice and unsafe.String in Go fragments > e8787615a Regression fix when using -keyword, kwargs or > compactdefaultargs option > #2889 y 892be2b80 Fix crash when using directors in Python without limited > API > c67582d0e Revert python to windows-2022. > dcca453b4 More %interface docs > e1b2d20f6 Destructor declaration correction in docs > 8fd4df01b CHANGES.current: Add entry for Lua unsigned long long fix > e2c3e568f Add Lua test case for long long > 390844a7d Fix "unsigned long long" being interpreted as "signed > long long" in Lua > db6f488fe Correct docs for libraries requiring .NET 4 > 36ef36dcb Add <errno.h> fragment for errno usage > 1e4559022 Add memory access violation message to C# docs > #3070 y f362bb099 Explicitly include errno.h for ERANGE > #3070 y dfe9d8ea2 [Java] Fix regression wrapping enum values > d9edb22d1 %apply and typedefs improvement > 40b6cc684 Use exact type for temporary variable wrapping > parameters with default args and compactdefaultargs > 5c2e83dd1 Typedefs to references fix for the compactdefaultargs > feature > 936767da8 Few error message improvements and consistency tweaks > 3cda507e5 Fix initializer lists used with -keyword or > compactdefaultargs option > 7af22e929 Fix pedantic warning in tests > 7fb816dcb typo fix in docs > #3058 y ada653aaf Suppress unhelpful GCC/clang warnings in new tests > #3058 y 4e315cdd7 Fix precedence of casts > 9187aaf22 [guile] Improve constant wrapping > acd508f4b Improve testsuite comment > 1382a403f Use defined type in cpp11_brackets_expression testcase > c77498d5d [Perl] Destroy C++ local variables on exception > 376911013 Java docs code style corrections > c9ce79be7 C# docs code style corrections > 7635b4033 Improve C# Java docs for memory handling and member > variable accessors > 0b4496a73 Fix testsuite SWIG warnings; enable SWIG -Werror > ce6d2dd11 Drop support for raw type strings in interface files > f84f80c31 Bump version to 4.4.0 > > William > > On Wed, 5 Feb 2025 at 18:33, William S Fulton <ws...@fu...> > wrote: > >> There havn't been many commits to master since 4.3.0 for a swig-4.4 >> release, however there are some regressions which ought to be released >> sooner rather than later so I was thinking of pushing out a 4.3.1 release >> soon (like within a month). This is mostly in response to >> https://github.com/swig/swig/issues/3118, but also all those tagged for >> 4.3.1 milestone - https://github.com/swig/swig/milestone/12. >> >> Any objections? If anyone has any "must have" regression fixes (either to >> be fixed or already fixed), could they please tag with with the 4.3.1 >> milestone. I'll create a release branch and then I'll cherry-pick the >> changes onto it like I did for the release-4.1 branch. >> >> William >> > |
|
From: William S F. <ws...@fu...> - 2025-04-10 08:47:50
|
I plan to make the 4.3.1 release this weekend. Below I've listed all the
commits in master since 4.3.0 and marked with 'y' the commits I plan to
cherry-pick onto the release branch. I've also prefixed with there is an
associated issue number. I'm only adding regression fixes and really low
risk non-essential changes. Please let me know if there are other candidate
commits.
#3067 y 61f0bbe97 Python external_runtime example fixup
#3067 y 095429213 Add external runtime Python example using typemap
#3067 y 56afa6e6d Fix Python limited API and external runtime
124d8a8c3 Test code for removed methods from std::list for
compatibility with java.util.List
34b71a3bb Fix javac -Xlint warning [this-escape] - JDK 21 in
director constructors
ef0d38bff Support JDK 21 and std::list
83be871ee Remove unused JAVA_TOOLS_JAR make variable
aaeef05f7 Fix javac -Xlint warning [this-escape] - JDK 21 in STL
containers
390da4d67 Add Java 21 testing
37caf2e66 warning fix for cdata Java wrappers for visual c++
af6581727 Fix javac -Xlint warnings:
c2ad64d0a Java compiler lint warnings fixes in test code
a16e3cb8c Add Java compiler linting checks javac -Xlint
6b69a05b4 Remove typemaps for signed/usigned wchar_t
c3b29f87f Update manual section numbers
f3ea85af0 [MzScheme/Racket] Drop support
0db0a3994 Omit empty deprecated/experiemtnal lists
644c860de remove redundant casts to const char* after using
GetStringUTFChars function
#3149 y 3b39c8080 CHANGES.current: Document previous commit
#3149 y 4bec60866 Update octheaders.hpp
y 62d492577 Pin cccl version to 1.4
86f061cec User specified CC/CXX detection fix
a5568a728 deprecated boost atomic_count.hpp
837cc1c06 int conversion warnings
y fedb45cf4 Upgrade to cccl-1.4
df836dee6 configure: Leave overridden CC/CXX values alone
f66ea491e Update AX_CXX_COMPILE_STDCXX to upstream serial 25
34d0b35cc Remove can fail for Windows GHA
4811cb2a2 GHA update for ubuntu-20.04 EOL (#3133)
0cc821269 Strip additional -std flags that autoconf now adds to CC
and CXX
e0ecea47b [ci] Enable Go 1.24 testing
e7f50af67 [guile] Add CHANGES entry for ports.i fix
e11f216a7 [guile] Fix ports.i
2f8137b0f [ci] Mark failing windows.yml jobs as continue-on-error
e42b3ca60 Remove unused SKIP_PYTHON3
651449ee0 [Python] Remove left-over check for Python 1.x
6dbf867d2 Fix handling of corner cases by previous change
4a0372aac Improve parsing multi-line expr via skip_balanced()
1bff64d5e Don't test against Go 1.24 for now. It doesn't work with
the default CFLAGS.
959dbd4dd Test against Go versions 1.20 and 1.24. Stop testing old
Go versions.
26b0911a7 Add support for $n special variable expansion in the
names of typemap local variables
fe3a7af85 Revert "[Go] Use unsafe.Slice and unsafe.String in Go
fragments"
ff5c118aa [Go] Use unsafe.Slice and unsafe.String in Go fragments
e8787615a Regression fix when using -keyword, kwargs or
compactdefaultargs option
#2889 y 892be2b80 Fix crash when using directors in Python without limited
API
c67582d0e Revert python to windows-2022.
dcca453b4 More %interface docs
e1b2d20f6 Destructor declaration correction in docs
8fd4df01b CHANGES.current: Add entry for Lua unsigned long long fix
e2c3e568f Add Lua test case for long long
390844a7d Fix "unsigned long long" being interpreted as "signed
long long" in Lua
db6f488fe Correct docs for libraries requiring .NET 4
36ef36dcb Add <errno.h> fragment for errno usage
1e4559022 Add memory access violation message to C# docs
#3070 y f362bb099 Explicitly include errno.h for ERANGE
#3070 y dfe9d8ea2 [Java] Fix regression wrapping enum values
d9edb22d1 %apply and typedefs improvement
40b6cc684 Use exact type for temporary variable wrapping parameters
with default args and compactdefaultargs
5c2e83dd1 Typedefs to references fix for the compactdefaultargs
feature
936767da8 Few error message improvements and consistency tweaks
3cda507e5 Fix initializer lists used with -keyword or
compactdefaultargs option
7af22e929 Fix pedantic warning in tests
7fb816dcb typo fix in docs
#3058 y ada653aaf Suppress unhelpful GCC/clang warnings in new tests
#3058 y 4e315cdd7 Fix precedence of casts
9187aaf22 [guile] Improve constant wrapping
acd508f4b Improve testsuite comment
1382a403f Use defined type in cpp11_brackets_expression testcase
c77498d5d [Perl] Destroy C++ local variables on exception
376911013 Java docs code style corrections
c9ce79be7 C# docs code style corrections
7635b4033 Improve C# Java docs for memory handling and member
variable accessors
0b4496a73 Fix testsuite SWIG warnings; enable SWIG -Werror
ce6d2dd11 Drop support for raw type strings in interface files
f84f80c31 Bump version to 4.4.0
William
On Wed, 5 Feb 2025 at 18:33, William S Fulton <ws...@fu...>
wrote:
> There havn't been many commits to master since 4.3.0 for a swig-4.4
> release, however there are some regressions which ought to be released
> sooner rather than later so I was thinking of pushing out a 4.3.1 release
> soon (like within a month). This is mostly in response to
> https://github.com/swig/swig/issues/3118, but also all those tagged for
> 4.3.1 milestone - https://github.com/swig/swig/milestone/12.
>
> Any objections? If anyone has any "must have" regression fixes (either to
> be fixed or already fixed), could they please tag with with the 4.3.1
> milestone. I'll create a release branch and then I'll cherry-pick the
> changes onto it like I did for the release-4.1 branch.
>
> William
>
|
|
From: William S F. <ws...@fu...> - 2025-02-05 18:34:18
|
There havn't been many commits to master since 4.3.0 for a swig-4.4 release, however there are some regressions which ought to be released sooner rather than later so I was thinking of pushing out a 4.3.1 release soon (like within a month). This is mostly in response to https://github.com/swig/swig/issues/3118, but also all those tagged for 4.3.1 milestone - https://github.com/swig/swig/milestone/12. Any objections? If anyone has any "must have" regression fixes (either to be fixed or already fixed), could they please tag with with the 4.3.1 milestone. I'll create a release branch and then I'll cherry-pick the changes onto it like I did for the release-4.1 branch. William |
|
From: Mika R. <mik...@ou...> - 2025-01-03 14:15:32
|
Friendly ping!
I'd appreciate guidance on how to make progress with this change. I do
think it makes writing correct java wrappers much easier. I'm willing to
spend time to improve it where necessary.
Mika
On Mon, Dec 2, 2024 at 7:30 PM Mika Raento <mik...@ou...> wrote:
> Dear swig-devel,
>
> I'd like to propose adding the SWIG_fail feature to the java target
> language's code generation. Currently it is quite easy to leak memory in
> java bindings, as typival early exit code will skip freearg typemaps. (The
> specific motivation for my case was the memory leak in
> realm-kotlin's SWIG wrapper, see
> https://github.com/realm/realm-kotlin/pull/1854. That wrapper can be
> fixed in other ways but it would be nice to use SWIG_fail there).
>
> I've drafted a PR with the code, documentation and test changes:
> https://github.com/swig/swig/pull/3079 for discussion on the specifics.
>
> I guess the main downside is that this will undoubtedly cause some
> breakage somewhere as it changes the behavior of SWIG_exception for Java,
> introduces the 'fail:' label that users may have used themselves and adds a
> new enclosing block for the 'meat' of the generated code so that the goto
> doesn't skip stack variable initialization.
>
> Any guidance on how to make the change less likely to cause breakage would
> be appreciated.
>
> Best,
> Mika Raento
>
--
Mika Raento
|
|
From: William S F. <ws...@fu...> - 2024-12-12 10:01:30
|
On Mon, 25 Nov 2024 at 16:06, Vadim Zeitlin <vz...@ze...> wrote:
> On Mon, 25 Nov 2024 14:46:05 +0000 Christophe CALMEJANE via Swig-devel <
> swi...@li...> wrote:
>
> CC> Still my main question remains, has it been considered to migrate from
> the
> CC> deprecated mono compiler to Microsoft Dotnet one?
>
> I think this would require a significant effort because, AFAIK, dotnet
> toolchain can't be used to compile individual C# source files, as the
> traditional compilers do, and what SWIG makefiles use, and requires
> creating a
> project for each and every test.
>
> But please correct me if I'm wrong, I could have missed something.
I have started looking at this. It seems that dotnet does not support C++
.vcxproj files, so we can't even use dotnet for the examples under
Examples/csharp. I had some luck running these examples under Linux though
by suppressing the csc.exe / mono-csc.exe invocation and then using dotnet
commands to create a project to build the C# layer. These are the steps for
the Examples/csharp/class example:
rm example-vc.vcxproj example-cs.csproj example.sln
dotnet new console -n example -o .
rm Program.cs
make COMPILETOOL=true RUNTOOL=true # To invoke swig and compile the
generated c/c++ code, suppresses invoking C# compiler and running the
example
dotnet build -nowarn:CS8981
env LD_LIBRARY_PATH=. dotnet run
Building quietly required some extra options...
dotnet build --verbosity quiet -clp:NoSummary
I think this has potential to work once autoconf is modified to detect
dotnet and modify the build accordingly. I'll try go in this direction
next. It would indeed need to create a project for each test (via dotnet
new). It generates a tiny example.csproj file:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
and doesn't take long. It finds all the .cs files in the current directory
including subdirectories. The test-suite might work by soft linking the
appropriate runme.cs file to the Examples/test-suite/csharp directory from
the testcase subdirectory that contains the generated C# files as all the
files will then be in a self-contained directory tree. It is possible to
write dotnet templates for 'dotnet new' which might be worth exploring.
William
|