diff --git a/CHANGES.current b/CHANGES.current index b131dd6d6..a9a67201d 100644 --- a/CHANGES.current +++ b/CHANGES.current @@ -7,6 +7,9 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/ Version 4.1.0 (in progress) =========================== +2022-03-15: ianlancetaylor + [Go] Add documentation note about Go and C++ exceptions. + 2022-03-12: wsfulton #1524 %interface family of macros no longer contain the getter/setter methods for wrapping variables. The interface only contains diff --git a/Doc/Manual/Contents.html b/Doc/Manual/Contents.html index a62f4ed12..6b33b99db 100644 --- a/Doc/Manual/Contents.html +++ b/Doc/Manual/Contents.html @@ -878,6 +878,7 @@
runtime.LockOSThread
function to lock the goroutine onto a single thread.
-25.4.8 Go Director Classes
+25.4.8 Go and C++ Exceptions
+
+
+
+C++ exceptions do not interoperate with Go code. Attempts to throw
+C++ exceptions through a Go caller are unreliable: in many cases the
+C++ exception handler will be unable to unwind the stack, and the
+program will crash. The only safe way to handle C++ exceptions is to
+catch them in C++ before returning to Go.
+
+
+25.4.9 Go Director Classes
@@ -591,7 +603,7 @@ completely to avoid common pitfalls with directors in Go.
-25.4.8.1 Example C++ code
+25.4.9.1 Example C++ code
@@ -663,7 +675,7 @@ be found in the end of the guide.
-25.4.8.2 Enable director feature
+25.4.9.2 Enable director feature
@@ -698,7 +710,7 @@ documentation on directors.
-25.4.8.3 Constructor and destructor
+25.4.9.3 Constructor and destructor
@@ -751,7 +763,7 @@ embedding
.
-@@ -819,7 +831,7 @@ the Go methods.
-@@ -856,7 +868,7 @@ be found in the end of the guide.
-@@ -924,7 +936,7 @@ class.
-@@ -989,7 +1001,7 @@ before using runtime.SetFinalizer to know all of its gotchas.
-@@ -1118,7 +1130,7 @@ SWIG/Examples/go/director/.
-@@ -1225,7 +1237,7 @@ that typemap, or add new values, to control how C/C++ types are mapped into Go types.
-Because of limitations in the way output arguments are processed in swig, @@ -1278,7 +1290,7 @@ void f(char *output); -
Often the APIs generated by swig are not very natural in go, especially if @@ -1373,7 +1385,7 @@ func bar() { -