Commit graph

47 commits

Author SHA1 Message Date
Rick Luddy
b1204ce92f Revert reference change; update CHANGES.current 2015-09-03 14:30:18 -04:00
Rick Luddy
a1e385694e Removed golang stringing for signed/unsigned char
With this change, generated code for golang treats char* as a string but
treats signed char* and unsigned char* as normal pointers. This seems to
fit better with the expected behavior, as the latter are more often used
as non-string data.
2015-08-25 09:17:19 -04:00
Ian Lance Taylor
48263f4802 [Go] Make sure that arguments for which use memcpy when calling C are
still live after the call.  This ensures that they will not be
collected if the GC runs during the call.
2015-05-04 15:11:31 -07:00
Ian Lance Taylor
661c4ba036 [Go] Add comments telling users that _swig_goallocate and
_swig_makegostring will no longer work in the Go 1.5 release.
Keep the existing code so that existing users with current versions of
Go will not break suddenly.
2015-04-17 09:44:40 -07:00
Ian Lance Taylor
9ad497c08e [Go] Add -cgo option, required for Go version 1.5 and later. 2015-03-02 14:03:33 -08:00
Ian Lance Taylor
1dd401899f [Go] Change SWIG directors to use a handle instead of a Go pointer.
In future releases of Go it will not be possible to pass Go pointers
into C/C++ code.  The handle is automatically translated back to the
Go value using a Go map.  Since directors must be explicitly deleted,
we can reliably use that call to remove the handle from the map.
2015-02-22 11:09:58 -08:00
William S Fulton
2947b711d9 Warning fixes in Go cdata library
GCC warnings -Wpointer-to-int-cast and -Wdeclaration-after-statement
2015-02-11 23:34:16 +00:00
Ian Lance Taylor
0a021a938e [Go] Remove all generated calls to _swig_makegostring, as it will no
longer as of Go 1.5.  In Go 1.5 or later user calls to
_swig_makegostring will fail at link time.

Instead, use goout and godirectorin typemaps to allocate strings in Go
code.

Change the Go typemaps support to ignore empty strings, so that we can
define empty strings for regular types so that %apply will override
the definitions for string types.

Fix the gccgo code to wrap SwigCgoCallback around all godirectorin
typemaps.

Add a few newlines after typemap code so that the typemaps don't have
to include them.
2015-02-05 10:15:37 -08:00
Ian Lance Taylor
2562c1eb41 [Go] Remove all calls to _swig_goallocate in the Go runtime, except
for the one from _swig_makegostring.  _swig_goallocate can not work
with the future Go 1.5 release.  When using Go 1.5 attempts to call
_swig_goallocate will fail at link time.
2015-02-04 16:08:44 -08:00
William S Fulton
fd8dcf44bf C++11 strongly typed enum fixes for directors
Tests added for previous commit. Further refinements to patch #308 and
fixes #307.
2015-01-15 19:48:07 +00:00
Ian Lance Taylor
0577ff2220 [Go] Adjust last patch to avoid write-after-write data race on global
variable.  Only set the variable if another global variable is true,
but that variable is always false.  The effect is that the variable is
never written, but as far as the compiler is concerned it might escape.
2014-10-14 10:05:43 -07:00
Ian Lance Taylor
4b64ce71a3 [Go] Adjust generated code to work with upcoming Go 1.4 release. 2014-09-25 12:10:11 -07:00
Ian Lance Taylor
acaaa0f31f [Go] Add goargout typemap. 2014-09-09 11:28:04 -07:00
Karl Wette
66555ad2a7 Fix go configuration and SWIG_GCC_VERSION
- in configure.ac: modify sed expression to only look at first line of
  gccgo --version, extract the last numeric token, and remove periods;
  this parses e.g. "gccgo (Debian 4.7.2-5) 4.7.2"
- in goruntime.swg: fix typo in __GNUC_PATCHLEVEL__ (SF Bug #1298)
2014-05-02 21:44:52 +02:00
Marvin Greenberg
843aa7cd65 Work around differences in clang libc++ std::vector<bool>::const_reference
clang++ using -stdlib=libc++ defines const_reference as a class,
to map boolean vectors onto a bit set.  Because swig does
not "see" the type as "const &" it generates incorrect code for this case,
generating a declaration like:

  const_reference result;

When const_reference is a typedef to 'bool' as is the case with stdlibc++
this works.  When this is actually a constant reference, this is clearly
invalid since it is not initialized.  For libc++, this is a class
which cannot be default constructed, resulting in an error.  The fix
is to explicitly define the various accessor extensions as having a
bool return type for this specialization.
2014-02-04 16:00:12 -05:00
Ian Lance Taylor
fa9a6d58ed [Go] Fix handling of C type "long" on 32-bit systems. It was broken
for C++ long& and for big-endian systems in general.
2014-01-27 17:49:35 -08:00
Ian Lance Taylor
f2dc3a9c1f [Go] Add %go_import directive. 2014-01-21 11:27:09 -08:00
Ian Lance Taylor
ba049db40b Remove Go -longsize option. 2013-12-17 17:37:55 -08:00
Ian Lance Taylor
532da6989c [Go] Add -go-pkgpath option. 2013-12-17 13:50:39 -08:00
Ian Lance Taylor
1dca0af024 Update for Go 1.2 release. Add support for linking SWIG code directly
into executable, rather than using a shared library.
2013-12-16 19:50:17 -08: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
Olly Betts
12708c9241 Fix typos 2013-09-25 17:29:33 +12:00
William S Fulton
e805d5f925 Merge branch 'master' into gsoc2009-matevz
parser.y still to be fixed up

Conflicts:
	Doc/Devel/engineering.html
	Examples/Makefile.in
	Lib/allegrocl/allegrocl.swg
	Lib/csharp/csharp.swg
	Lib/csharp/enums.swg
	Lib/csharp/enumsimple.swg
	Lib/csharp/enumtypesafe.swg
	Lib/java/java.swg
	Lib/python/pydocs.swg
	Lib/r/rtype.swg
	Source/Include/swigwarn.h
	Source/Modules/octave.cxx
	Source/Modules/python.cxx
	Source/Modules/ruby.cxx
	Source/Swig/scanner.c
	Source/Swig/stype.c
	Source/Swig/swig.h
	configure.ac
2013-01-28 07:01:37 +00:00
William S Fulton
e87a51ed92 Add rvalue reference typemaps 2013-01-24 20:27:28 +00:00
Ian Lance Taylor
ab7da898ef Define uintgo for the benefit of Go .swig files.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13876 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-10-31 03:41:10 +00:00
Ian Lance Taylor
786d883d45 Fix Go support for enums to work correctly when Go int type is 64 bits.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13875 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-10-30 23:38:57 +00:00
Ian Lance Taylor
a42882dcee Adjust for change in the size of the Go type int. Until some time in
the future, require a -intgosize option when invoking SWIG.  Otherwise
there is no reliable way for us to know the size of int, and we need
to know.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13864 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-10-05 04:58:00 +00:00
Ian Lance Taylor
5e30ec58e8 Adjust typemaps.i for change in handling of reference to slice.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13856 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-10-02 14:53:13 +00:00
Ian Lance Taylor
5a19113432 Import unsafe in generated Go code, so that pointers stored as type
uintptr do not get garbage collected.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13153 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-06-05 20:54:08 +00:00
Ian Lance Taylor
9a6dc5ac40 Fix typo in name of SwigDoCgocallDone for GCC < 4.7.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13151 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-06-05 13:32:28 +00:00
Ian Lance Taylor
7ec208da05 Fix Go support to use appropriate interface for entering and leaving
C/C++ code, depending on GCC version.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13146 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-06-04 05:37:10 +00:00
William S Fulton
12a9671440 std::string typemap modifications so they can be used with %apply for other string classes
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13120 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-26 06:33:49 +00:00
Ian Lance Taylor
602730a327 Add support for new features available in gccgo 4.7, notably calling
Entersyscall and Exitsyscall around calls to wrapped C/C++ code.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12940 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-03-20 22:35:40 +00:00
Ian Lance Taylor
eb5130814d Fix problems in Go support revealed by recent test cases.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12922 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-03-14 19:27:23 +00:00
William S Fulton
4c898b023c The 'directorin' typemap now accepts , etc expansions instead of having to use workarounds - _name, _name etc.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12879 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-12-21 07:16:44 +00:00
William S Fulton
8ee0593036 Remove incomplete directorin typemaps as users incorrectly assumed they were implemented and working
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12653 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-03 05:46:00 +00:00
William S Fulton
837835280d Remove directorout INPUT/INOUT/OUTPUT typemaps - they will never be used as they used for the return type, not parameters. Fix java directorin typemap.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12651 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-05-03 05:32:13 +00:00
Ian Lance Taylor
56d808092f Fix li_typemaps_apply test for Go.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12493 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-02-20 04:08:54 +00:00
Ian Lance Taylor
21ca5a854c Adjust for the elimination of the "float" and "complex" types.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12487 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-02-19 20:22:33 +00:00
Ian Lance Taylor
ef3644f052 Add string & length typemap for Go.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12394 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-01-14 21:31:36 +00:00
Ian Lance Taylor
18a4f389f9 Update to support current Go releases.
The Go foreign function interface changed.  This changes SWIG
accordingly, and also fixes a couple of bugs.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12389 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-01-11 18:46:50 +00:00
Ian Lance Taylor
580f254958 Update for recent runtime name changes (a better mechanism is clearly
needed here).


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12290 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-11-12 16:43:03 +00:00
Ian Lance Taylor
da5e02f81c Rename "go" typemap to "gotype".
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12129 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-06-15 19:40:34 +00:00
Ian Lance Taylor
9d466dd408 Rename size checking macros to avoid leading double underscore. Also
change goswig to swiggo.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12127 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-06-15 17:59:32 +00:00
William S Fulton
688db4ee29 Fix std::map warning keyword hack in Go
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12121 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-06-11 22:36:58 +00:00
William S Fulton
7e7bd74ff2 Remove Go director hack just to please the SWIG test-suite
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12120 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-06-11 19:05:30 +00:00
Ian Lance Taylor
5af2978f77 Add support for the Go programming language.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12108 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-06-10 01:13:31 +00:00