Commit graph

24 commits

Author SHA1 Message Date
William S Fulton
034e2358f9 Add Racket throws typemaps for char * 2022-09-19 09:09:29 +01:00
William S Fulton
e139a36511 SWIGTYPE && input typemaps now assume object has been moved
Replicated Java implementation.

Fully implemented for:
- C#
- D
- Guile
- Javascript (UTL)
- Lua
- MzScheme
- Octave (UTL)
- Perl (UTL)
- PHP
- Python (UTL)
- Ruby (UTL)
- Tcl (UTL)

PHP std::auto_ptr std::unique_ptr minor tweaks and testcase corrections
2022-08-31 19:40:14 +01:00
William S Fulton
c10a84c775 Cosmetic stray semi-colon removal after %typemap using quotes 2022-08-31 19:40:13 +01:00
William S Fulton
48c644ea6e Add Racket support for std::unique_ptr and std::auto_ptr
Equivalent to Guile implementation.

Slight tweak to proxy ownership was required by adding in
the own member to swig_mz_proxy.
2022-08-18 22:45:03 +01:00
William S Fulton
319442a8c4 More move semantics improvements
More removal of casts in the out typemaps when copying objects to enable
C++ compilers to possibly make use of move semantics.
2022-07-04 11:19:50 +01:00
William S Fulton
bf36bf7d8a Movable and move-only types supported in "out" typemaps.
Enhance SWIGTYPE "out" typemaps to use std::move when copying
objects, thereby making use of move semantics when wrapping a function returning
by value if the returned type supports move semantics.

Wrapping functions that return move only types 'by value' now work out the box
without having to provide custom typemaps.

The implementation removed all casts in the "out" typemaps to allow the compiler to
appropriately choose calling a move constructor, where possible, otherwise a copy
constructor. The implementation alsoand required modifying SwigValueWrapper to
change a cast operator from:

  SwigValueWrapper::operator T&() const;

to

  #if __cplusplus >=201103L
    SwigValueWrapper::operator T&&() const;
  #else
    SwigValueWrapper::operator T&() const;
  #endif

This is not backwards compatible for C++11 and later when using the valuewrapper feature
if a cast is explicitly being made in user supplied "out" typemaps. Suggested change
in custom "out" typemaps for C++11 and later code:

1. Try remove the cast altogether to let the compiler use an appropriate implicit cast.
2. Change the cast, for example, from static_cast<X &> to static_cast<X &&>, using the
   __cplusplus macro if all versions of C++ need to be supported.

Issue #999
Closes #1044

More about the commit:
Added some missing "varout" typemaps for Ocaml which was falling back to
use "out" typemaps as they were missing.

Ruby std::set fix for SwigValueWrapper C++11 changes.
2022-06-30 17:26:48 +01:00
William S Fulton
330201018a Fix overloading for non-pointers and NULL - MzScheme 2018-12-30 17:12:33 +00:00
William S Fulton
bcb7aee022 Merge branch 'master' into gsoc2009-matevz
Conflicts:
	Examples/Makefile.in
	Examples/guile/Makefile.in
	Lib/php/php.swg
	Makefile.in
	Source/CParse/parser.y
	configure.ac
2013-10-10 07:26:09 +01:00
Geert Janssens
b819d2a91e Drop guilegh interface
All of guile's interface files now use the scm interface.
This should not affect any users. Swig generated code
using the scm interface can be mixed with gh interface
using user code.
It does simplify maintenance of the guile swig code though.
2013-04-28 22:06:24 +02:00
William S Fulton
9bd2fb2cad Add rvalue reference typemaps 2013-01-24 20:27:28 +00:00
William S Fulton
bdb136d611 Change typemap matching rules for the default type (SWIGTYPE) to follow template partial specialization type deduction. Fixes some containers of const pointers. SWIGTYPE*& typemps removed and replaced with SWIGTYPE *const&.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11958 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-04-01 18:26:37 +00:00
William S Fulton
4308dd03cf SWIG license change - The Examples and Lib move to a very permissive license in the LICENSE file, removing the BSD license restrictions as agreed by committers since it was inadvertently introduced. Remove some examples where the impact of the license change is not clear.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11874 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-27 23:26:02 +00:00
William S Fulton
49be05f4fd Common template for head of each file detailing licence, distribution and authors information
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8973 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-03-07 00:14:10 +00:00
Matthias Köppe
b63f275984 [MzScheme] Typemaps for all integral types now accept the full range
of integral values, and they signal an error when a value outside the
valid range is passed.

[Guile] Typemaps for all integral types now signal an error when a
value outside the valid range is passed.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8844 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2006-02-19 19:28:42 +00:00
Matthias Köppe
c07de8d45f Fix last change.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7122 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-03-30 19:55:12 +00:00
Matthias Köppe
c4de71d6e5 Patch from Hans Oesterholt for supporting MzScheme 30x.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7120 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-03-30 11:43:22 +00:00
John Lenz
c3338b1a16 - Improve the runtime type sytesm
- Update all languages to new type system
- Add DohSortList function
- Fix mzscheme Examples/Makefile


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6930 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2005-02-01 00:08:24 +00:00
Matthias Köppe
f7b0956236 Use FUNC_NAME rather than a bogus typemap variable for signalling
errors.  Call scheme_wrong_type with a zero-based argument number.
Reported by Ondrej Pacovsky, SF #902621.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5734 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2004-02-23 12:56:58 +00:00
Matthias Köppe
568be8990a Merged MzScheme changes contributed by John Lenz.
Minor build changes to fix MzScheme/C++ test cases.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4880 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-06-10 21:54:01 +00:00
Luigi Ballabio
7764b8227a Added correct (I hope) typechecking for native scripting objects
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4821 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-05-22 13:01:44 +00:00
Luigi Ballabio
a39aa898f0 Missing typecheck for bool passed as value
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4338 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-02-18 17:13:54 +00:00
Dave Beazley
12a43edc2d The great merge
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4141 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2002-11-30 22:01:28 +00:00
Dave Beazley
7242c6daf7 Applied Oleg's MzScheme patches
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@496 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2000-06-19 00:29:04 +00:00
Thien-Thi Nguyen
9b441d2630 Initial revision
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@392 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2000-04-06 08:26:59 +00:00