From: <wsf...@us...> - 2008-11-10 21:59:46
|
Revision: 10925 http://swig.svn.sourceforge.net/swig/?rev=10925&view=rev Author: wsfulton Date: 2008-11-10 21:53:15 +0000 (Mon, 10 Nov 2008) Log Message: ----------- Add Antti Karanta's documentation about the new c# array marshalling library plus some docs on the carrays library Modified Paths: -------------- trunk/Doc/Manual/CSharp.html trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Library.html trunk/Doc/Manual/Php.html Modified: trunk/Doc/Manual/CSharp.html =================================================================== --- trunk/Doc/Manual/CSharp.html 2008-11-10 14:37:45 UTC (rev 10924) +++ trunk/Doc/Manual/CSharp.html 2008-11-10 21:53:15 UTC (rev 10925) @@ -11,6 +11,12 @@ <ul> <li><a href="#csharp_introduction">Introduction</a> <li><a href="#csharp_differences_java">Differences to the Java module</a> +<li><a href="#CSharp_arrays">C# Arrays</a> +<ul> +<li><a href="#CSharp_arrays_swig_library">The SWIG C arrays library</a> +<li><a href="#CSharp_arrays_pinvoke_default_array_marshalling">Managed arrays using P/Invoke default array marshalling</a> +<li><a href="#CSharp_arrays_pinning">Managed arrays using pinning</a> +</ul> <li><a href="#csharp_exceptions">C# Exceptions</a> <ul> <li><a href="#csharp_exception_example_check_typemap">C# exception example using "check" typemap</a> @@ -402,10 +408,300 @@ <a href="http://www.cygwin.com">Cygwin</a> or <a href="http://www.mingw.org">MinGW</a> environment for automatic configuration of the example makefiles. Any one of the three C# compilers (Portable.NET, Mono or Microsoft) can be detected from within a Cygwin or Mingw environment if installed in your path. -<H2><a name="csharp_exceptions"></a>17.3 C# Exceptions</H2> +<H2><a name="CSharp_arrays"></a>17.3 C# Arrays</H2> <p> +There are various ways to pass arrays from C# to C/C++. +The default wrapping treats arrays as pointers and as such simple type wrapper classes are generated, +eg <tt>SWIGTYPE_p_int</tt> when wrapping the C type <tt>int []</tt> or <tt>int *</tt>. +This gives a rather restricted use of the underlying unmanaged code and the most practical way to use arrays is to enhance or customise +with one of the following three approaches; namely the SWIG C arrays library, P/Invoke default array marshalling or +pinned arrays. +</p> + +<H3><a name="CSharp_arrays_swig_library"></a>17.3.1 The SWIG C arrays library</H3> + + +<p> +The C arrays library keeps all the array memory in the unmanaged layer. +The library is available to all language modules and is documented in the <a href="Library.html#Library_carrays">carrays.i library</a> section. +Please refer to this section for details, but for convenience, the C# usage for the two examples outlined there is shown below. +</p> + +<p> +For the <tt>%array_functions</tt> example, the equivalent usage would be: +<p> + +<div class="code"> +<pre> +SWIGTYPE_p_double a = example.new_doubleArray(10); // Create an array +for (int i=0; i<10; i++) + example.doubleArray_setitem(a,i,2*i); // Set a value +example.print_array(a); // Pass to C +example.delete_doubleArray(a); // Destroy array +</pre> +</div> + +<p> +and for the <tt>%array_class</tt> example, the equivalent usage would be: +<p> + +<div class="code"> +<pre> +doubleArray c = new doubleArray(10); // Create double[10] +for (int i=0; i<10; i++) + c.setitem(i, 2*i); // Assign values +example.print_array(c.cast()); // Pass to C +</pre> +</div> + + +<H3><a name="CSharp_arrays_pinvoke_default_array_marshalling"></a>17.3.2 Managed arrays using P/Invoke default array marshalling</H3> + + +<p> +In the P/Invoke default marshalling scheme, one needs to designate whether the invoked function will treat a managed +array parameter as input, output, or both. When the function is invoked, the CLR allocates a separate chunk of memory as big as the given managed array, +which is automatically released at the end of the function call. If the array parameter is marked as being input, the content of the managed array is copied +into this buffer when the call is made. Correspondingly, if the array parameter is marked as being output, the contents of the reserved buffer are copied +back into the managed array after the call returns. A pointer to to this buffer +is passed to the native function. +</p> + +<p> +The reason for allocating a separate buffer is to leave the CLR free to relocate the managed array object +during garbage collection. If the overhead caused by the copying is causing a significant performance penalty, consider pinning the managed array and +passing a direct reference as described in the next section. +</p> + +<p> +For more information on the subject, see the +<a href="http://msdn.microsoft.com/en-us/library/z6cfh6e6(VS.80).aspx">Default Marshaling for Arrays</a> article +on MSDN. +</p> + + +<p> +The P/Invoke default marshalling is supported by the <tt>arrays_csharp.i</tt> library via the INPUT, OUTPUT and INOUT typemaps. +Let's look at some example usage. Consider the following C function: +<div class="code"> +<pre> +void myArrayCopy(int *sourceArray, int *targetArray, int nitems); +</pre> +</div> +</p> + +<p> +We can now instruct SWIG to use the default marshalling typemaps by +</p> + +<p> +<div class="code"> +<pre> +%include "arrays_csharp.i" + +%apply int INPUT[] {int *sourceArray} +%apply int OUTPUT[] {int *targetArray} +</pre> +</div> +</p> + +<p> +As a result, we get the following method in the module class: +</p> + +<p> +<div class="code"> +<pre> +public static void myArrayCopy(int[] sourceArray, int[] targetArray, int nitems) { + examplePINVOKE.myArrayCopy(sourceArray, targetArray, nitems); +} +</pre> +</div> +</p> + +<p> +If we look beneath the surface at the corresponding intermediary class code, we see +that SWIG has generated code that uses attributes +(from the System.Runtime.InteropServices namespace) to tell the CLR to use default +marshalling for the arrays: +</p> + +<p> +<div class="code"> +<pre> +[DllImport("example", EntryPoint="CSharp_myArrayCopy")] +public static extern void myArrayCopy([In, MarshalAs(UnmanagedType.LPArray)]int[] jarg1, + [Out, MarshalAs(UnmanagedType.LPArray)]int[] jarg2, int jarg3); +</pre> +</div> +</p> + +<p> +As an example of passing an inout array (i.e. the target function will both read from and +write to the array), consider this C function that swaps a given number of elements +in the given arrays: +</p> + +<p> +<div class="code"> +<pre> +void myArraySwap(int *array1, int *array2, int nitems); +</pre> +</div> +</p> + +<p> +Now, we can instruct SWIG to wrap this by +</p> + +<p> +<div class="code"> +<pre> +%include "arrays_csharp.i" + +%apply int INOUT[] {int *array1} +%apply int INOUT[] {int *array2} +</pre> +</div> +</p> + +<p> +This results in the module class method +</p> + +<p> +<div class="code"> +<pre> + public static void myArraySwap(int[] array1, int[] array2, int nitems) { + examplePINVOKE.myArraySwap(array1, array2, nitems); + } +</pre> +</div> +</p> + +<p> +and intermediate class method +</p> + +<p> +<div class="code"> +<pre> + [DllImport("example", EntryPoint="CSharp_myArraySwap")] + public static extern void myArraySwap([In, Out, MarshalAs(UnmanagedType.LPArray)]int[] jarg1, + [In, Out, MarshalAs(UnmanagedType.LPArray)]int[] jarg2, int jarg3); +</pre> +</div> +</p> + + +<H3><a name="CSharp_arrays_pinning"></a>17.3.3 Managed arrays using pinning</H3> + + +<p> +It is also possible to pin a given array in memory (i.e. fix its location in memory), obtain a +direct pointer to it, and then pass this pointer to the wrapped C/C++ function. This approach +involves no copying, but it makes the work of the garbage collector harder as +the managed array object can not be relocated before the fix on the array is released. You should avoid +fixing arrays in memory in cases where the control may re-enter the managed side via a callback and/or +another thread may produce enough garbage to trigger garbage collection. +</p> + +<p> +For more information, see the <a href="http://msdn.microsoft.com/en-us/library/f58wzh21(VS.80).aspx">fixed statement</a> in the C# language reference. +</p> + + +<p> +Now let's look at an example using pinning, thus avoiding the CLR making copies +of the arrays passed as parameters. The <tt>arrays_csharp.i</tt> library file again provides the required support via the <tt>FIXED</tt> typemaps. +Let's use the same function from the previous section: +</p> + +<div class="code"> +<pre> +void myArrayCopy(int *sourceArray, int *targetArray, int nitems); +</pre> +</div> + +<p> +We now need to declare the module class method unsafe, as we are using pointers: +</p> + +<p> +<div class="code"> +<pre> +%csmethodmodifiers myArrayCopy "public unsafe"; + </pre> +</div> +</p> + +<p> +Apply the appropriate typemaps to the array parameters: +</p> + +<p> +<div class="code"> +<pre> +%include "arrays_csharp.i" + +%apply int FIXED[] {int *sourceArray} +%apply int FIXED[] {int *targetArray} +</pre> +</div> +</p> + +<p> +Notice that there is no need for separate in, out or inout typemaps as is the +case when using P/Invoke default marshalling. +</p> + +<p> +As a result, we get the following method in the module class: +</p> + +<p> +<div class="code"> +<pre> + public unsafe static void myArrayCopy(int[] sourceArray, int[] targetArray, int nitems) { + fixed ( int *swig_ptrTo_sourceArray = sourceArray ) { + fixed ( int *swig_ptrTo_targetArray = targetArray ) { + { + examplePINVOKE.myArrayCopy((IntPtr)swig_ptrTo_sourceArray, (IntPtr)swig_ptrTo_targetArray, nitems); + } + } + } + } +</pre> +</div> +</p> + +<p> +On the method signature level the only difference to the version using P/Invoke default +marshalling is the "unsafe" quantifier, which is required because we are handling pointers. +</p> + +<p> +Also the intermediate class method looks a little different from the default marshalling +example - the method is expecting an IntPtr as the parameter type. +</p> + +<p> +<div class="code"> +<pre> +[DllImport("example", EntryPoint="CSharp_myArrayCopy")] +public static extern void myArrayCopy(IntPtr jarg1, IntPtr jarg2, int jarg3); +</pre> +</div> +</p> + + + +<H2><a name="csharp_exceptions"></a>17.4 C# Exceptions</H2> + + +<p> It is possible to throw a C# Exception from C/C++ code. SWIG already provides the framework for throwing C# exceptions if it is able to detect that a C++ exception could be thrown. Automatically detecting that a C++ exception could be thrown is only possible when a C++ exception specification is used, @@ -499,7 +795,7 @@ </p> -<H3><a name="csharp_exception_example_check_typemap"></a>17.3.1 C# exception example using "check" typemap</H3> +<H3><a name="csharp_exception_example_check_typemap"></a>17.4.1 C# exception example using "check" typemap</H3> <p> @@ -681,7 +977,7 @@ Actually it will issue this warning for any function beginning with <tt>SWIG_CSharpSetPendingException</tt>. </P> -<H3><a name="csharp_exception_example_percent_exception"></a>17.3.2 C# exception example using %exception</H3> +<H3><a name="csharp_exception_example_percent_exception"></a>17.4.2 C# exception example using %exception</H3> <p> @@ -746,7 +1042,7 @@ </pre> </div> -<H3><a name="csharp_exception_example_exception_specifications"></a>17.3.3 C# exception example using exception specifications</H3> +<H3><a name="csharp_exception_example_exception_specifications"></a>17.4.3 C# exception example using exception specifications</H3> <p> @@ -803,7 +1099,7 @@ Multiple catch handlers are generated should there be more than one exception specifications declared. </p> -<H3><a name="csharp_custom_application_exception"></a>17.3.4 Custom C# ApplicationException example</H3> +<H3><a name="csharp_custom_application_exception"></a>17.4.4 Custom C# ApplicationException example</H3> <p> @@ -937,7 +1233,7 @@ </pre> </div> -<H2><a name="csharp_directors"></a>17.4 C# Directors</H2> +<H2><a name="csharp_directors"></a>17.5 C# Directors</H2> <p> @@ -950,7 +1246,7 @@ However, the <a href="Java.html#java_directors">Java directors</a> section should also be read in order to gain more insight into directors. </p> -<H3><a name="csharp_directors_example"></a>17.4.1 Directors example</H3> +<H3><a name="csharp_directors_example"></a>17.5.1 Directors example</H3> <p> @@ -1071,7 +1367,7 @@ </pre> </div> -<H3><a name="csharp_directors_implementation"></a>17.4.2 Directors implementation</H3> +<H3><a name="csharp_directors_implementation"></a>17.5.2 Directors implementation</H3> <p> @@ -1257,7 +1553,7 @@ </pre> </div> -<H3><a name="csharp_director_caveats"></a>17.4.3 Director caveats</H3> +<H3><a name="csharp_director_caveats"></a>17.5.3 Director caveats</H3> <p> @@ -1305,7 +1601,7 @@ should pass the call on to <tt>CSharpDefaults.DefaultMethod(int)</tt>using the C++ default value, as shown above. </p> -<H2><a name="csharp_typemap_examples"></a>17.5 C# Typemap examples</H2> +<H2><a name="csharp_typemap_examples"></a>17.6 C# Typemap examples</H2> This section includes a few examples of typemaps. For more examples, you @@ -1313,7 +1609,7 @@ the SWIG library. -<H3><a name="csharp_memory_management_member_variables"></a>17.5.1 Memory management when returning references to member variables</H3> +<H3><a name="csharp_memory_management_member_variables"></a>17.6.1 Memory management when returning references to member variables</H3> <p> @@ -1437,7 +1733,7 @@ Note the <tt>addReference</tt> call. </p> -<H3><a name="csharp_memory_management_objects"></a>17.5.2 Memory management for objects passed to the C++ layer</H3> +<H3><a name="csharp_memory_management_objects"></a>17.6.2 Memory management for objects passed to the C++ layer</H3> <p> @@ -1556,7 +1852,7 @@ </div> -<H3><a name="csharp_date_marshalling"></a>17.5.3 Date marshalling using the csin typemap and associated attributes</H3> +<H3><a name="csharp_date_marshalling"></a>17.6.3 Date marshalling using the csin typemap and associated attributes</H3> <p> @@ -1840,7 +2136,7 @@ </pre> </div> -<H3><a name="csharp_date_properties"></a>17.5.4 A date example demonstrating marshalling of C# properties</H3> +<H3><a name="csharp_date_properties"></a>17.6.4 A date example demonstrating marshalling of C# properties</H3> <p> @@ -1941,7 +2237,7 @@ </ul> -<H3><a name="csharp_partial_classes"></a>17.5.5 Turning wrapped classes into partial classes</H3> +<H3><a name="csharp_partial_classes"></a>17.6.5 Turning wrapped classes into partial classes</H3> <p> @@ -2041,7 +2337,7 @@ The following example is an alternative approach to adding managed code to the generated proxy class. </p> -<H3><a name="csharp_extending_proxy_class"></a>17.5.6 Extending proxy classes with additional C# code</H3> +<H3><a name="csharp_extending_proxy_class"></a>17.6.6 Extending proxy classes with additional C# code</H3> <p> Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2008-11-10 14:37:45 UTC (rev 10924) +++ trunk/Doc/Manual/Contents.html 2008-11-10 21:53:15 UTC (rev 10925) @@ -162,7 +162,7 @@ <li><a href="SWIG.html#SWIG_nn33">Character strings and structures</a> <li><a href="SWIG.html#SWIG_nn34">Array members</a> <li><a href="SWIG.html#SWIG_structure_data_members">Structure data members</a> -<li><a href="SWIG.html#SWIG_nn36">C constructors and destructors </a> +<li><a href="SWIG.html#SWIG_nn36">C constructors and destructors</a> <li><a href="SWIG.html#SWIG_adding_member_functions">Adding member functions to C structures</a> <li><a href="SWIG.html#SWIG_nested_structs">Nested structures</a> <li><a href="SWIG.html#SWIG_nn39">Other things to note about structure wrapping</a> @@ -272,7 +272,7 @@ <li><a href="Library.html#Library_nn3">C Arrays and Pointers</a> <ul> <li><a href="Library.html#Library_nn4">cpointer.i</a> -<li><a href="Library.html#Library_nn5">carrays.i</a> +<li><a href="Library.html#Library_carrays">carrays.i</a> <li><a href="Library.html#Library_nn6">cmalloc.i</a> <li><a href="Library.html#Library_nn7">cdata.i</a> </ul> @@ -588,6 +588,12 @@ <ul> <li><a href="CSharp.html#csharp_introduction">Introduction</a> <li><a href="CSharp.html#csharp_differences_java">Differences to the Java module</a> +<li><a href="CSharp.html#CSharp_arrays">C# Arrays</a> +<ul> +<li><a href="CSharp.html#CSharp_arrays_swig_library">The SWIG C arrays library</a> +<li><a href="CSharp.html#CSharp_arrays_pinvoke_default_array_marshalling">Managed arrays using P/Invoke default array marshalling</a> +<li><a href="CSharp.html#CSharp_arrays_pinning">Managed arrays using pinning</a> +</ul> <li><a href="CSharp.html#csharp_exceptions">C# Exceptions</a> <ul> <li><a href="CSharp.html#csharp_exception_example_check_typemap">C# exception example using "check" typemap</a> @@ -1106,7 +1112,6 @@ <li><a href="Php.html#Php_nn1">Generating PHP Extensions</a> <ul> <li><a href="Php.html#Php_nn1_1">Building a loadable extension</a> -<li><a href="Php.html#Php_nn1_2">Building extensions into PHP</a> <li><a href="Php.html#Php_nn1_3">Using PHP Extensions</a> </ul> <li><a href="Php.html#Php_nn2">Basic PHP interface</a> @@ -1194,7 +1199,7 @@ <li><a href="Python.html#Python_nn30">Memory management</a> <li><a href="Python.html#Python_nn31">Python 2.2 and classic classes</a> </ul> -<li><a href="Python.html#directors">Cross language polymorphism</a> +<li><a href="Python.html#Python_directors">Cross language polymorphism</a> <ul> <li><a href="Python.html#Python_nn33">Enabling directors</a> <li><a href="Python.html#Python_nn34">Director classes</a> @@ -1249,7 +1254,13 @@ <li><a href="Python.html#Python_nn71">%feature("docstring")</a> </ul> <li><a href="Python.html#Python_nn72">Python Packages</a> +<li><a href="Python.html#Python_python3support">Python 3 Support</a> +<ul> +<li><a href="Python.html#Python_nn74">Function annotation</a> +<li><a href="Python.html#Python_nn75">Buffer interface</a> +<li><a href="Python.html#Python_nn76">Abstract base classes</a> </ul> +</ul> </div> <!-- INDEX --> Modified: trunk/Doc/Manual/Library.html =================================================================== --- trunk/Doc/Manual/Library.html 2008-11-10 14:37:45 UTC (rev 10924) +++ trunk/Doc/Manual/Library.html 2008-11-10 21:53:15 UTC (rev 10925) @@ -14,7 +14,7 @@ <li><a href="#Library_nn3">C Arrays and Pointers</a> <ul> <li><a href="#Library_nn4">cpointer.i</a> -<li><a href="#Library_nn5">carrays.i</a> +<li><a href="#Library_carrays">carrays.i</a> <li><a href="#Library_nn6">cmalloc.i</a> <li><a href="#Library_nn7">cdata.i</a> </ul> @@ -316,7 +316,7 @@ <b>Note:</b> When working with simple pointers, typemaps can often be used to provide more seamless operation. </p> -<H3><a name="Library_nn5"></a>8.2.2 carrays.i</H3> +<H3><a name="Library_carrays"></a>8.2.2 carrays.i</H3> <p> @@ -419,7 +419,9 @@ </div> +<p> <b><tt>%array_class(type,name)</tt></b> +</p> <div class="indent"> <p> Modified: trunk/Doc/Manual/Php.html =================================================================== --- trunk/Doc/Manual/Php.html 2008-11-10 14:37:45 UTC (rev 10924) +++ trunk/Doc/Manual/Php.html 2008-11-10 21:53:15 UTC (rev 10925) @@ -14,7 +14,6 @@ <li><a href="#Php_nn1">Generating PHP Extensions</a> <ul> <li><a href="#Php_nn1_1">Building a loadable extension</a> -<li><a href="#Php_nn1_2">Building extensions into PHP</a> <li><a href="#Php_nn1_3">Using PHP Extensions</a> </ul> <li><a href="#Php_nn2">Basic PHP interface</a> @@ -119,6 +118,7 @@ <H3><a name="Php_nn1_1"></a>28.1.1 Building a loadable extension</H3> + <p> To build your module as a dynamically loadable extension, use compilation commands like these (if you aren't using GCC, the commands will be different, @@ -131,8 +131,9 @@ gcc -shared example_wrap.o -o example.so </pre></div> -<H3><a name="Php_nn1_3"></a>28.1.3 Using PHP Extensions</H3> +<H3><a name="Php_nn1_3"></a>28.1.2 Using PHP Extensions</H3> + <p> To test the extension from a PHP script, you need to load it first. You can load it for every script by adding this line the <tt>[PHP]</tt> section of This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2008-12-09 22:55:56
|
Revision: 10975 http://swig.svn.sourceforge.net/swig/?rev=10975&view=rev Author: wsfulton Date: 2008-12-09 21:31:31 +0000 (Tue, 09 Dec 2008) Log Message: ----------- section name update Modified Paths: -------------- trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Typemaps.html Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2008-12-08 20:41:56 UTC (rev 10974) +++ trunk/Doc/Manual/Contents.html 2008-12-09 21:31:31 UTC (rev 10975) @@ -390,6 +390,7 @@ <li><a href="Typemaps.html#Typemaps_nn48">More about <tt>%apply</tt> and <tt>%clear</tt></a> <li><a href="Typemaps.html#Typemaps_nn49">Reducing wrapper code size</a> <li><a href="Typemaps.html#Typemaps_nn47">Passing data between typemaps</a> +<li><a href="Typemaps.html#Typemaps_nn52">C++ "this" pointer</a> <li><a href="Typemaps.html#Typemaps_nn51">Where to go for more information?</a> </ul> </div> Modified: trunk/Doc/Manual/Typemaps.html =================================================================== --- trunk/Doc/Manual/Typemaps.html 2008-12-08 20:41:56 UTC (rev 10974) +++ trunk/Doc/Manual/Typemaps.html 2008-12-09 21:31:31 UTC (rev 10975) @@ -75,7 +75,7 @@ <li><a href="#Typemaps_nn48">More about <tt>%apply</tt> and <tt>%clear</tt></a> <li><a href="#Typemaps_nn49">Reducing wrapper code size</a> <li><a href="#Typemaps_nn47">Passing data between typemaps</a> -<li><a href="#Typemaps_nn52">C++ <tt>this</tt> pointer</a> +<li><a href="#Typemaps_nn52">C++ "this" pointer</a> <li><a href="#Typemaps_nn51">Where to go for more information?</a> </ul> </div> @@ -3902,6 +3902,7 @@ <H2><a name="Typemaps_nn52"></a>10.15 C++ "this" pointer</H2> + <p> All the rules discussed for Typemaps apply to C++ as well as C. However in addition C++ passes an extra parameter into every @@ -3960,6 +3961,7 @@ <H2><a name="Typemaps_nn51"></a>10.16 Where to go for more information?</H2> + <p> The best place to find out more information about writing typemaps is to This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2008-12-17 02:22:48
|
Revision: 10985 http://swig.svn.sourceforge.net/swig/?rev=10985&view=rev Author: wsfulton Date: 2008-12-17 01:33:00 +0000 (Wed, 17 Dec 2008) Log Message: ----------- some html fixes Modified Paths: -------------- trunk/Doc/Manual/CSharp.html trunk/Doc/Manual/Java.html trunk/Doc/Manual/Modules.html Modified: trunk/Doc/Manual/CSharp.html =================================================================== --- trunk/Doc/Manual/CSharp.html 2008-12-17 00:28:51 UTC (rev 10984) +++ trunk/Doc/Manual/CSharp.html 2008-12-17 01:33:00 UTC (rev 10985) @@ -431,7 +431,7 @@ <p> For the <tt>%array_functions</tt> example, the equivalent usage would be: -<p> +</p> <div class="code"> <pre> @@ -445,7 +445,7 @@ <p> and for the <tt>%array_class</tt> example, the equivalent usage would be: -<p> +</p> <div class="code"> <pre> @@ -485,18 +485,17 @@ <p> The P/Invoke default marshalling is supported by the <tt>arrays_csharp.i</tt> library via the INPUT, OUTPUT and INOUT typemaps. Let's look at some example usage. Consider the following C function: +</p> <div class="code"> <pre> void myArrayCopy(int *sourceArray, int *targetArray, int nitems); </pre> </div> -</p> <p> We can now instruct SWIG to use the default marshalling typemaps by </p> -<p> <div class="code"> <pre> %include "arrays_csharp.i" @@ -505,13 +504,11 @@ %apply int OUTPUT[] {int *targetArray} </pre> </div> -</p> <p> As a result, we get the following method in the module class: </p> -<p> <div class="code"> <pre> public static void myArrayCopy(int[] sourceArray, int[] targetArray, int nitems) { @@ -519,7 +516,6 @@ } </pre> </div> -</p> <p> If we look beneath the surface at the corresponding intermediary class code, we see @@ -528,7 +524,6 @@ marshalling for the arrays: </p> -<p> <div class="code"> <pre> [DllImport("example", EntryPoint="CSharp_myArrayCopy")] @@ -536,7 +531,6 @@ [Out, MarshalAs(UnmanagedType.LPArray)]int[] jarg2, int jarg3); </pre> </div> -</p> <p> As an example of passing an inout array (i.e. the target function will both read from and @@ -544,19 +538,16 @@ in the given arrays: </p> -<p> <div class="code"> <pre> void myArraySwap(int *array1, int *array2, int nitems); </pre> </div> -</p> <p> Now, we can instruct SWIG to wrap this by </p> -<p> <div class="code"> <pre> %include "arrays_csharp.i" @@ -565,13 +556,11 @@ %apply int INOUT[] {int *array2} </pre> </div> -</p> <p> This results in the module class method </p> -<p> <div class="code"> <pre> public static void myArraySwap(int[] array1, int[] array2, int nitems) { @@ -579,13 +568,11 @@ } </pre> </div> -</p> <p> and intermediate class method </p> -<p> <div class="code"> <pre> [DllImport("example", EntryPoint="CSharp_myArraySwap")] @@ -593,7 +580,6 @@ [In, Out, MarshalAs(UnmanagedType.LPArray)]int[] jarg2, int jarg3); </pre> </div> -</p> <H3><a name="CSharp_arrays_pinning"></a>17.3.3 Managed arrays using pinning</H3> @@ -629,19 +615,16 @@ We now need to declare the module class method unsafe, as we are using pointers: </p> -<p> <div class="code"> <pre> %csmethodmodifiers myArrayCopy "public unsafe"; </pre> </div> -</p> <p> Apply the appropriate typemaps to the array parameters: </p> -<p> <div class="code"> <pre> %include "arrays_csharp.i" @@ -650,7 +633,6 @@ %apply int FIXED[] {int *targetArray} </pre> </div> -</p> <p> Notice that there is no need for separate in, out or inout typemaps as is the @@ -661,7 +643,6 @@ As a result, we get the following method in the module class: </p> -<p> <div class="code"> <pre> public unsafe static void myArrayCopy(int[] sourceArray, int[] targetArray, int nitems) { @@ -675,7 +656,6 @@ } </pre> </div> -</p> <p> On the method signature level the only difference to the version using P/Invoke default @@ -687,14 +667,12 @@ example - the method is expecting an IntPtr as the parameter type. </p> -<p> <div class="code"> <pre> [DllImport("example", EntryPoint="CSharp_myArrayCopy")] public static extern void myArrayCopy(IntPtr jarg1, IntPtr jarg2, int jarg3); </pre> </div> -</p> Modified: trunk/Doc/Manual/Java.html =================================================================== --- trunk/Doc/Manual/Java.html 2008-12-17 00:28:51 UTC (rev 10984) +++ trunk/Doc/Manual/Java.html 2008-12-17 01:33:00 UTC (rev 10985) @@ -2858,7 +2858,7 @@ <p> The premature garbage collection prevention parameter for proxy classes is generated by default whenever proxy classes are passed by value, reference or with a pointer. The implementation for this extra parameter generation requires the "jtype" typemap to contain <tt>long</tt> and the "jstype" typemap to contain the name of a proxy class. -<p> +</p> <p> The additional parameter does impose a slight performance overhead and the parameter generation can be suppressed globally with the <tt>-nopgcpp</tt> commandline option. Modified: trunk/Doc/Manual/Modules.html =================================================================== --- trunk/Doc/Manual/Modules.html 2008-12-17 00:28:51 UTC (rev 10984) +++ trunk/Doc/Manual/Modules.html 2008-12-17 01:33:00 UTC (rev 10985) @@ -132,7 +132,7 @@ Another issue to beware of is that multiple dependent wrappers should not be linked/loaded in parallel from multiple threads as SWIG provides no locking - for more on that -issue, read on.</p> +issue, read on. </p> <H2><a name="Modules_nn2"></a>15.2 The SWIG runtime code</H2> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2008-12-20 01:51:50
|
Revision: 10991 http://swig.svn.sourceforge.net/swig/?rev=10991&view=rev Author: wsfulton Date: 2008-12-20 01:49:58 +0000 (Sat, 20 Dec 2008) Log Message: ----------- new section numbering since adding in ccache chapter Modified Paths: -------------- trunk/Doc/Manual/Allegrocl.html trunk/Doc/Manual/CSharp.html trunk/Doc/Manual/Chicken.html trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Extending.html trunk/Doc/Manual/Guile.html trunk/Doc/Manual/Java.html trunk/Doc/Manual/Lisp.html trunk/Doc/Manual/Lua.html trunk/Doc/Manual/Modula3.html trunk/Doc/Manual/Modules.html trunk/Doc/Manual/Mzscheme.html trunk/Doc/Manual/Ocaml.html trunk/Doc/Manual/Octave.html trunk/Doc/Manual/Perl5.html trunk/Doc/Manual/Php.html trunk/Doc/Manual/Pike.html trunk/Doc/Manual/Python.html trunk/Doc/Manual/R.html trunk/Doc/Manual/Ruby.html trunk/Doc/Manual/Sections.html trunk/Doc/Manual/Tcl.html trunk/Doc/Manual/chapters Modified: trunk/Doc/Manual/Allegrocl.html =================================================================== --- trunk/Doc/Manual/Allegrocl.html 2008-12-20 01:45:11 UTC (rev 10990) +++ trunk/Doc/Manual/Allegrocl.html 2008-12-20 01:49:58 UTC (rev 10991) @@ -8,7 +8,7 @@ <body bgcolor="#ffffff"> -<H1><a name="Allegrocl_nn1"></a>16 SWIG and Allegro Common Lisp</H1> +<H1><a name="Allegrocl_nn1"></a>17 SWIG and Allegro Common Lisp</H1> <!-- INDEX --> <div class="sectiontoc"> <ul> @@ -135,10 +135,10 @@ to it. </p> -<H2><a name="Allegrocl_nn2"></a>16.1 Basics</H2> +<H2><a name="Allegrocl_nn2"></a>17.1 Basics</H2> -<H3><a name="Allegrocl_nn3"></a>16.1.1 Running Swig</H3> +<H3><a name="Allegrocl_nn3"></a>17.1.1 Running Swig</H3> <p> @@ -360,7 +360,7 @@ the C++ wrapper will be what you then load into Allegro CL. </p> -<H3><a name="Allegrocl_nn4"></a>16.1.2 Command Line Options</H3> +<H3><a name="Allegrocl_nn4"></a>17.1.2 Command Line Options</H3> <p> @@ -396,7 +396,7 @@ functions</a> for more details. </p> -<H3><a name="Allegrocl_nn5"></a>16.1.3 Inserting user code into generated files</H3> +<H3><a name="Allegrocl_nn5"></a>17.1.3 Inserting user code into generated files</H3> <p> @@ -436,7 +436,7 @@ </p> -<H2><a name="Allegrocl_nn6"></a>16.2 Wrapping Overview</H2> +<H2><a name="Allegrocl_nn6"></a>17.2 Wrapping Overview</H2> <p> @@ -446,7 +446,7 @@ interested in generating an interface to C++. </p> -<H3><a name="Allegrocl_nn7"></a>16.2.1 Function Wrapping</H3> +<H3><a name="Allegrocl_nn7"></a>17.2.1 Function Wrapping</H3> <p> @@ -499,7 +499,7 @@ </pre> </div> -<H3><a name="Allegrocl_nn8"></a>16.2.2 Foreign Wrappers</H3> +<H3><a name="Allegrocl_nn8"></a>17.2.2 Foreign Wrappers</H3> <p> @@ -512,7 +512,7 @@ typemap. </p> -<H3><a name="Allegrocl_nn9"></a>16.2.3 FFI Wrappers</H3> +<H3><a name="Allegrocl_nn9"></a>17.2.3 FFI Wrappers</H3> <p> @@ -593,7 +593,7 @@ ff:def-foreign-call's. </p> -<H3><a name="Allegrocl_nn10"></a>16.2.4 Non-overloaded Defuns</H3> +<H3><a name="Allegrocl_nn10"></a>17.2.4 Non-overloaded Defuns</H3> <p> @@ -606,7 +606,7 @@ this function can be manipulated via the <tt>lout</tt> typemap. </p> -<H3><a name="Allegrocl_nn11"></a>16.2.5 Overloaded Defuns</H3> +<H3><a name="Allegrocl_nn11"></a>17.2.5 Overloaded Defuns</H3> <p> @@ -622,7 +622,7 @@ can be manipulated via the <tt>lout</tt> typemap. </p> -<H3><a name="Allegrocl_nn12"></a>16.2.6 What about constant and variable access?</H3> +<H3><a name="Allegrocl_nn12"></a>17.2.6 What about constant and variable access?</H3> <p> @@ -635,7 +635,7 @@ into the foreign module. </p> -<H3><a name="Allegrocl_nn13"></a>16.2.7 Object Wrapping</H3> +<H3><a name="Allegrocl_nn13"></a>17.2.7 Object Wrapping</H3> <p> @@ -657,7 +657,7 @@ foreign function interface. </p> -<H2><a name="Allegrocl_nn14"></a>16.3 Wrapping Details</H2> +<H2><a name="Allegrocl_nn14"></a>17.3 Wrapping Details</H2> <p> @@ -665,7 +665,7 @@ translated into lisp. </p> -<H3><a name="Allegrocl_nn15"></a>16.3.1 Namespaces</H3> +<H3><a name="Allegrocl_nn15"></a>17.3.1 Namespaces</H3> <p> @@ -742,7 +742,7 @@ function such as <tt>(car '(1 2 3)</tt>. </p> -<H3><a name="Allegrocl_nn16"></a>16.3.2 Constants</H3> +<H3><a name="Allegrocl_nn16"></a>17.3.2 Constants</H3> @@ -803,7 +803,7 @@ not use the <tt>-nocwrap</tt> command-line option. </p> -<H3><a name="Allegrocl_nn17"></a>16.3.3 Variables</H3> +<H3><a name="Allegrocl_nn17"></a>17.3.3 Variables</H3> <p> @@ -881,7 +881,7 @@ </pre> </div> -<H3><a name="Allegrocl_nn18"></a>16.3.4 Enumerations</H3> +<H3><a name="Allegrocl_nn18"></a>17.3.4 Enumerations</H3> <p> @@ -957,7 +957,7 @@ </pre> </div> -<H3><a name="Allegrocl_nn19"></a>16.3.5 Arrays</H3> +<H3><a name="Allegrocl_nn19"></a>17.3.5 Arrays</H3> <p> @@ -1105,10 +1105,10 @@ </pre> </div> -<H3><a name="Allegrocl_nn20"></a>16.3.6 Classes and Structs and Unions (oh my!)</H3> +<H3><a name="Allegrocl_nn20"></a>17.3.6 Classes and Structs and Unions (oh my!)</H3> -<H4><a name="Allegrocl_nn21"></a>16.3.6.1 CLOS wrapping of</H4> +<H4><a name="Allegrocl_nn21"></a>17.3.6.1 CLOS wrapping of</H4> <p> @@ -1123,7 +1123,7 @@ integer values. </p> -<H4><a name="Allegrocl_nn22"></a>16.3.6.2 CLOS Inheritance</H4> +<H4><a name="Allegrocl_nn22"></a>17.3.6.2 CLOS Inheritance</H4> <p> @@ -1136,7 +1136,7 @@ parameter. </p> -<H4><a name="Allegrocl_nn23"></a>16.3.6.3 Member fields and functions</H4> +<H4><a name="Allegrocl_nn23"></a>17.3.6.3 Member fields and functions</H4> <p> @@ -1152,7 +1152,7 @@ the interface does nothing for <tt>friend</tt> directives, </p> -<H4><a name="Allegrocl_nn24"></a>16.3.6.4 Why not directly access C++ classes using foreign types?</H4> +<H4><a name="Allegrocl_nn24"></a>17.3.6.4 Why not directly access C++ classes using foreign types?</H4> <p> @@ -1170,11 +1170,11 @@ use the more robust wrapper functions. </p> -<H3><a name="Allegrocl_nn25"></a>16.3.7 Templates</H3> +<H3><a name="Allegrocl_nn25"></a>17.3.7 Templates</H3> -<H4><a name="Allegrocl_nn26"></a>16.3.7.1 Generating wrapper code for templates</H4> +<H4><a name="Allegrocl_nn26"></a>17.3.7.1 Generating wrapper code for templates</H4> <p> @@ -1187,7 +1187,7 @@ directive. </p> -<H4><a name="Allegrocl_nn27"></a>16.3.7.2 Implicit Template instantiation</H4> +<H4><a name="Allegrocl_nn27"></a>17.3.7.2 Implicit Template instantiation</H4> <p> @@ -1197,7 +1197,7 @@ class schema. </p> -<H3><a name="Allegrocl_nn28"></a>16.3.8 Typedef, Templates, and Synonym Types</H3> +<H3><a name="Allegrocl_nn28"></a>17.3.8 Typedef, Templates, and Synonym Types</H3> <p> @@ -1277,7 +1277,7 @@ </pre> </div> -<H4><a name="Allegrocl_nn29"></a>16.3.8.1 Choosing a primary type</H4> +<H4><a name="Allegrocl_nn29"></a>17.3.8.1 Choosing a primary type</H4> <p> @@ -1298,7 +1298,7 @@ </li> </ul> -<H3><a name="Allegrocl_nn30"></a>16.3.9 Function overloading/Parameter defaulting</H3> +<H3><a name="Allegrocl_nn30"></a>17.3.9 Function overloading/Parameter defaulting</H3> <p> @@ -1461,7 +1461,7 @@ </pre> </div> -<H3><a name="Allegrocl_nn31"></a>16.3.10 Operator wrapping and Operator overloading</H3> +<H3><a name="Allegrocl_nn31"></a>17.3.10 Operator wrapping and Operator overloading</H3> <p> @@ -1607,7 +1607,7 @@ </pre> </div> -<H3><a name="Allegrocl_nn32"></a>16.3.11 Varargs</H3> +<H3><a name="Allegrocl_nn32"></a>17.3.11 Varargs</H3> <p> @@ -1628,7 +1628,7 @@ with other ways such functions can be wrapped. </p> -<H3><a name="Allegrocl_nn33"></a>16.3.12 C++ Exceptions</H3> +<H3><a name="Allegrocl_nn33"></a>17.3.12 C++ Exceptions</H3> <p> @@ -1640,7 +1640,7 @@ implemented. </p> -<H3><a name="Allegrocl_nn34"></a>16.3.13 Pass by value, pass by reference</H3> +<H3><a name="Allegrocl_nn34"></a>17.3.13 Pass by value, pass by reference</H3> <p> @@ -1652,7 +1652,7 @@ newly defined types. </p> -<H2><a name="Allegrocl_nn35"></a>16.4 Typemaps</H2> +<H2><a name="Allegrocl_nn35"></a>17.4 Typemaps</H2> <p> @@ -1663,7 +1663,7 @@ on <a href="Typemaps.html#Typemaps">Typemaps</a> for more information. </p> -<H3><a name="Allegrocl_nn36"></a>16.4.1 Code Generation in the C++ Wrapper</H3> +<H3><a name="Allegrocl_nn36"></a>17.4.1 Code Generation in the C++ Wrapper</H3> @@ -1693,7 +1693,7 @@ </pre> </div> -<H4><a name="Allegrocl_nn37"></a>16.4.1.1 IN Typemap</H4> +<H4><a name="Allegrocl_nn37"></a>17.4.1.1 IN Typemap</H4> <p> @@ -1728,7 +1728,7 @@ </pre> </div> -<H4><a name="Allegrocl_nn38"></a>16.4.1.2 OUT Typemap</H4> +<H4><a name="Allegrocl_nn38"></a>17.4.1.2 OUT Typemap</H4> <p> @@ -1752,7 +1752,7 @@ </pre> </div> -<H4><a name="Allegrocl_nn39"></a>16.4.1.3 CTYPE Typemap</H4> +<H4><a name="Allegrocl_nn39"></a>17.4.1.3 CTYPE Typemap</H4> <p> @@ -1784,7 +1784,7 @@ these <a href="Typemaps.html#Typemaps_nn25">common typemaps</a> here. </p> -<H3><a name="Allegrocl_nn40"></a>16.4.2 Code generation in Lisp wrappers</H3> +<H3><a name="Allegrocl_nn40"></a>17.4.2 Code generation in Lisp wrappers</H3> <p> @@ -1803,7 +1803,7 @@ <a href="#Allegrocl_nn15">16.3.1 Namespaces</a> for details. </p> -<H4><a name="Allegrocl_nn41"></a>16.4.2.1 LIN Typemap</H4> +<H4><a name="Allegrocl_nn41"></a>17.4.2.1 LIN Typemap</H4> <p> @@ -1846,7 +1846,7 @@ </pre> </div> -<H4><a name="Allegrocl_nn42"></a>16.4.2.2 LOUT Typemap</H4> +<H4><a name="Allegrocl_nn42"></a>17.4.2.2 LOUT Typemap</H4> <p> @@ -1889,7 +1889,7 @@ </pre> </div> -<H4><a name="Allegrocl_nn43"></a>16.4.2.3 FFITYPE Typemap</H4> +<H4><a name="Allegrocl_nn43"></a>17.4.2.3 FFITYPE Typemap</H4> @@ -1939,7 +1939,7 @@ </pre> </div> -<H4><a name="Allegrocl_nn44"></a>16.4.2.4 LISPTYPE Typemap</H4> +<H4><a name="Allegrocl_nn44"></a>17.4.2.4 LISPTYPE Typemap</H4> <p> @@ -1959,7 +1959,7 @@ </pre> </div> -<H4><a name="Allegrocl_nn45"></a>16.4.2.5 LISPCLASS Typemap</H4> +<H4><a name="Allegrocl_nn45"></a>17.4.2.5 LISPCLASS Typemap</H4> <p> @@ -1983,7 +1983,7 @@ </pre> </div> -<H3><a name="Allegrocl_nn46"></a>16.4.3 Modifying SWIG behavior using typemaps</H3> +<H3><a name="Allegrocl_nn46"></a>17.4.3 Modifying SWIG behavior using typemaps</H3> <p> @@ -2017,10 +2017,10 @@ </pre> </div> -<H2><a name="Allegrocl_nn47"></a>16.5 Identifier Converter functions</H2> +<H2><a name="Allegrocl_nn47"></a>17.5 Identifier Converter functions</H2> -<H3><a name="Allegrocl_nn48"></a>16.5.1 Creating symbols in the lisp environment</H3> +<H3><a name="Allegrocl_nn48"></a>17.5.1 Creating symbols in the lisp environment</H3> <p> @@ -2041,11 +2041,11 @@ of arguments. </p> -<H3><a name="Allegrocl_nn49"></a>16.5.2 Existing identifier-converter functions</H3> +<H3><a name="Allegrocl_nn49"></a>17.5.2 Existing identifier-converter functions</H3> <p>Two basic identifier routines have been defined. -<H4><a name="Allegrocl_nn50"></a>16.5.2.1 identifier-convert-null</H4> +<H4><a name="Allegrocl_nn50"></a>17.5.2.1 identifier-convert-null</H4> <p> @@ -2054,7 +2054,7 @@ strings, from which a symbol will be created. </p> -<H4><a name="Allegrocl_nn51"></a>16.5.2.2 identifier-convert-lispify</H4> +<H4><a name="Allegrocl_nn51"></a>17.5.2.2 identifier-convert-lispify</H4> <p> @@ -2063,7 +2063,7 @@ same symbol transformations. </p> -<H4><a name="Allegrocl_nn52"></a>16.5.2.3 Default identifier to symbol conversions</H4> +<H4><a name="Allegrocl_nn52"></a>17.5.2.3 Default identifier to symbol conversions</H4> <p> @@ -2072,7 +2072,7 @@ default naming conventions. </p> -<H3><a name="Allegrocl_nn53"></a>16.5.3 Defining your own identifier-converter</H3> +<H3><a name="Allegrocl_nn53"></a>17.5.3 Defining your own identifier-converter</H3> <p> @@ -2128,7 +2128,7 @@ this identifier. </p> -<H3><a name="Allegrocl_nn54"></a>16.5.4 Instructing SWIG to use a particular identifier-converter</H3> +<H3><a name="Allegrocl_nn54"></a>17.5.4 Instructing SWIG to use a particular identifier-converter</H3> <p> Modified: trunk/Doc/Manual/CSharp.html =================================================================== --- trunk/Doc/Manual/CSharp.html 2008-12-20 01:45:11 UTC (rev 10990) +++ trunk/Doc/Manual/CSharp.html 2008-12-20 01:49:58 UTC (rev 10991) @@ -5,7 +5,7 @@ <link rel="stylesheet" type="text/css" href="style.css"> </head> <body bgcolor="#FFFFFF"> -<H1><a name="CSharp"></a>17 SWIG and C#</H1> +<H1><a name="CSharp"></a>18 SWIG and C#</H1> <!-- INDEX --> <div class="sectiontoc"> <ul> @@ -45,7 +45,7 @@ -<H2><a name="csharp_introduction"></a>17.1 Introduction</H2> +<H2><a name="csharp_introduction"></a>18.1 Introduction</H2> <p> @@ -65,7 +65,7 @@ Monodoc, available from the Mono project, has a very useful section titled <a href="http://www.mono-project.com/Interop_with_Native_Libraries">Interop with native libraries</a>. </p> -<H2><a name="csharp_differences_java"></a>17.2 Differences to the Java module</H2> +<H2><a name="csharp_differences_java"></a>18.2 Differences to the Java module</H2> <p> @@ -408,7 +408,7 @@ <a href="http://www.cygwin.com">Cygwin</a> or <a href="http://www.mingw.org">MinGW</a> environment for automatic configuration of the example makefiles. Any one of the three C# compilers (Portable.NET, Mono or Microsoft) can be detected from within a Cygwin or Mingw environment if installed in your path. -<H2><a name="CSharp_arrays"></a>17.3 C# Arrays</H2> +<H2><a name="CSharp_arrays"></a>18.3 C# Arrays</H2> <p> @@ -420,7 +420,7 @@ pinned arrays. </p> -<H3><a name="CSharp_arrays_swig_library"></a>17.3.1 The SWIG C arrays library</H3> +<H3><a name="CSharp_arrays_swig_library"></a>18.3.1 The SWIG C arrays library</H3> <p> @@ -457,7 +457,7 @@ </div> -<H3><a name="CSharp_arrays_pinvoke_default_array_marshalling"></a>17.3.2 Managed arrays using P/Invoke default array marshalling</H3> +<H3><a name="CSharp_arrays_pinvoke_default_array_marshalling"></a>18.3.2 Managed arrays using P/Invoke default array marshalling</H3> <p> @@ -582,7 +582,7 @@ </div> -<H3><a name="CSharp_arrays_pinning"></a>17.3.3 Managed arrays using pinning</H3> +<H3><a name="CSharp_arrays_pinning"></a>18.3.3 Managed arrays using pinning</H3> <p> @@ -676,7 +676,7 @@ -<H2><a name="csharp_exceptions"></a>17.4 C# Exceptions</H2> +<H2><a name="csharp_exceptions"></a>18.4 C# Exceptions</H2> <p> @@ -773,7 +773,7 @@ </p> -<H3><a name="csharp_exception_example_check_typemap"></a>17.4.1 C# exception example using "check" typemap</H3> +<H3><a name="csharp_exception_example_check_typemap"></a>18.4.1 C# exception example using "check" typemap</H3> <p> @@ -955,7 +955,7 @@ Actually it will issue this warning for any function beginning with <tt>SWIG_CSharpSetPendingException</tt>. </P> -<H3><a name="csharp_exception_example_percent_exception"></a>17.4.2 C# exception example using %exception</H3> +<H3><a name="csharp_exception_example_percent_exception"></a>18.4.2 C# exception example using %exception</H3> <p> @@ -1020,7 +1020,7 @@ </pre> </div> -<H3><a name="csharp_exception_example_exception_specifications"></a>17.4.3 C# exception example using exception specifications</H3> +<H3><a name="csharp_exception_example_exception_specifications"></a>18.4.3 C# exception example using exception specifications</H3> <p> @@ -1077,7 +1077,7 @@ Multiple catch handlers are generated should there be more than one exception specifications declared. </p> -<H3><a name="csharp_custom_application_exception"></a>17.4.4 Custom C# ApplicationException example</H3> +<H3><a name="csharp_custom_application_exception"></a>18.4.4 Custom C# ApplicationException example</H3> <p> @@ -1211,7 +1211,7 @@ </pre> </div> -<H2><a name="csharp_directors"></a>17.5 C# Directors</H2> +<H2><a name="csharp_directors"></a>18.5 C# Directors</H2> <p> @@ -1224,7 +1224,7 @@ However, the <a href="Java.html#java_directors">Java directors</a> section should also be read in order to gain more insight into directors. </p> -<H3><a name="csharp_directors_example"></a>17.5.1 Directors example</H3> +<H3><a name="csharp_directors_example"></a>18.5.1 Directors example</H3> <p> @@ -1345,7 +1345,7 @@ </pre> </div> -<H3><a name="csharp_directors_implementation"></a>17.5.2 Directors implementation</H3> +<H3><a name="csharp_directors_implementation"></a>18.5.2 Directors implementation</H3> <p> @@ -1531,7 +1531,7 @@ </pre> </div> -<H3><a name="csharp_director_caveats"></a>17.5.3 Director caveats</H3> +<H3><a name="csharp_director_caveats"></a>18.5.3 Director caveats</H3> <p> @@ -1579,7 +1579,7 @@ should pass the call on to <tt>CSharpDefaults.DefaultMethod(int)</tt>using the C++ default value, as shown above. </p> -<H2><a name="csharp_typemap_examples"></a>17.6 C# Typemap examples</H2> +<H2><a name="csharp_typemap_examples"></a>18.6 C# Typemap examples</H2> This section includes a few examples of typemaps. For more examples, you @@ -1587,7 +1587,7 @@ the SWIG library. -<H3><a name="csharp_memory_management_member_variables"></a>17.6.1 Memory management when returning references to member variables</H3> +<H3><a name="csharp_memory_management_member_variables"></a>18.6.1 Memory management when returning references to member variables</H3> <p> @@ -1711,7 +1711,7 @@ Note the <tt>addReference</tt> call. </p> -<H3><a name="csharp_memory_management_objects"></a>17.6.2 Memory management for objects passed to the C++ layer</H3> +<H3><a name="csharp_memory_management_objects"></a>18.6.2 Memory management for objects passed to the C++ layer</H3> <p> @@ -1830,7 +1830,7 @@ </div> -<H3><a name="csharp_date_marshalling"></a>17.6.3 Date marshalling using the csin typemap and associated attributes</H3> +<H3><a name="csharp_date_marshalling"></a>18.6.3 Date marshalling using the csin typemap and associated attributes</H3> <p> @@ -2114,7 +2114,7 @@ </pre> </div> -<H3><a name="csharp_date_properties"></a>17.6.4 A date example demonstrating marshalling of C# properties</H3> +<H3><a name="csharp_date_properties"></a>18.6.4 A date example demonstrating marshalling of C# properties</H3> <p> @@ -2215,7 +2215,7 @@ </ul> -<H3><a name="csharp_partial_classes"></a>17.6.5 Turning wrapped classes into partial classes</H3> +<H3><a name="csharp_partial_classes"></a>18.6.5 Turning wrapped classes into partial classes</H3> <p> @@ -2315,7 +2315,7 @@ The following example is an alternative approach to adding managed code to the generated proxy class. </p> -<H3><a name="csharp_extending_proxy_class"></a>17.6.6 Extending proxy classes with additional C# code</H3> +<H3><a name="csharp_extending_proxy_class"></a>18.6.6 Extending proxy classes with additional C# code</H3> <p> Modified: trunk/Doc/Manual/Chicken.html =================================================================== --- trunk/Doc/Manual/Chicken.html 2008-12-20 01:45:11 UTC (rev 10990) +++ trunk/Doc/Manual/Chicken.html 2008-12-20 01:49:58 UTC (rev 10991) @@ -8,7 +8,7 @@ <body bgcolor="#ffffff"> -<H1><a name="Chicken"></a>18 SWIG and Chicken</H1> +<H1><a name="Chicken"></a>19 SWIG and Chicken</H1> <!-- INDEX --> <div class="sectiontoc"> <ul> @@ -72,7 +72,7 @@ </p> -<H2><a name="Chicken_nn2"></a>18.1 Preliminaries</H2> +<H2><a name="Chicken_nn2"></a>19.1 Preliminaries</H2> <p> @@ -90,7 +90,7 @@ CHICKEN. </p> -<H3><a name="Chicken_nn3"></a>18.1.1 Running SWIG in C mode</H3> +<H3><a name="Chicken_nn3"></a>19.1.1 Running SWIG in C mode</H3> <p> @@ -123,7 +123,7 @@ object files and linked into your project. </p> -<H3><a name="Chicken_nn4"></a>18.1.2 Running SWIG in C++ mode</H3> +<H3><a name="Chicken_nn4"></a>19.1.2 Running SWIG in C++ mode</H3> <p> @@ -152,10 +152,10 @@ object files and linked into your project. </p> -<H2><a name="Chicken_nn5"></a>18.2 Code Generation</H2> +<H2><a name="Chicken_nn5"></a>19.2 Code Generation</H2> -<H3><a name="Chicken_nn6"></a>18.2.1 Naming Conventions</H3> +<H3><a name="Chicken_nn6"></a>19.2.1 Naming Conventions</H3> <p> @@ -171,7 +171,7 @@ <tt>%rename</tt> SWIG directive in the SWIG interface file. </p> -<H3><a name="Chicken_nn7"></a>18.2.2 Modules</H3> +<H3><a name="Chicken_nn7"></a>19.2.2 Modules</H3> <p> @@ -193,7 +193,7 @@ (uses <i>modulename</i>))</code> CHICKEN Scheme form. </p> -<H3><a name="Chicken_nn8"></a>18.2.3 Constants and Variables</H3> +<H3><a name="Chicken_nn8"></a>19.2.3 Constants and Variables</H3> <p> @@ -230,7 +230,7 @@ for info on how to apply the %feature. </p> -<H3><a name="Chicken_nn9"></a>18.2.4 Functions</H3> +<H3><a name="Chicken_nn9"></a>19.2.4 Functions</H3> <p> @@ -249,7 +249,7 @@ parameters). The return values can then be accessed with <code>(call-with-values)</code>. </p> -<H3><a name="Chicken_nn10"></a>18.2.5 Exceptions</H3> +<H3><a name="Chicken_nn10"></a>19.2.5 Exceptions</H3> <p>The SWIG chicken module has support for exceptions thrown from @@ -291,7 +291,7 @@ </pre></div> -<H2><a name="Chicken_nn11"></a>18.3 TinyCLOS</H2> +<H2><a name="Chicken_nn11"></a>19.3 TinyCLOS</H2> <p> @@ -334,7 +334,7 @@ </p> -<H2><a name="Chicken_nn12"></a>18.4 Linkage</H2> +<H2><a name="Chicken_nn12"></a>19.4 Linkage</H2> <p> @@ -355,7 +355,7 @@ </p> -<H3><a name="Chicken_nn13"></a>18.4.1 Static binary or shared library linked at compile time</H3> +<H3><a name="Chicken_nn13"></a>19.4.1 Static binary or shared library linked at compile time</H3> <p>We can easily use csc to build a static binary.</p> @@ -396,7 +396,7 @@ be run with <tt>csi</tt>. </p> -<H3><a name="Chicken_nn14"></a>18.4.2 Building chicken extension libraries</H3> +<H3><a name="Chicken_nn14"></a>19.4.2 Building chicken extension libraries</H3> <p>Building a shared library like in the above section only works if the library @@ -454,7 +454,7 @@ <p>See the <tt>Examples/chicken/egg</tt> directory in the SWIG source for an example that builds two eggs, one using the first method and one using the second method.</p> -<H3><a name="Chicken_nn15"></a>18.4.3 Linking multiple SWIG modules with TinyCLOS</H3> +<H3><a name="Chicken_nn15"></a>19.4.3 Linking multiple SWIG modules with TinyCLOS</H3> <p>Linking together multiple modules that share type information using the <code>%import</code> @@ -478,7 +478,7 @@ To create an extension library or an egg, just create a <tt>module_load.scm</tt> file that <code>(declare (uses ...))</code> all the modules.</p> -<H2><a name="Chicken_nn16"></a>18.5 Typemaps</H2> +<H2><a name="Chicken_nn16"></a>19.5 Typemaps</H2> <p> @@ -487,7 +487,7 @@ <code>Lib/chicken/chicken.swg</code>. </p> -<H2><a name="Chicken_nn17"></a>18.6 Pointers</H2> +<H2><a name="Chicken_nn17"></a>19.6 Pointers</H2> <p> @@ -520,7 +520,7 @@ type. flags is either zero or SWIG_POINTER_DISOWN (see below). </p> -<H3><a name="collection"></a>18.6.1 Garbage collection</H3> +<H3><a name="collection"></a>19.6.1 Garbage collection</H3> <p>If the owner flag passed to <code>SWIG_NewPointerObj</code> is 1, <code>NewPointerObj</code> will add a @@ -551,7 +551,7 @@ must be called manually. </p> -<H2><a name="Chicken_nn18"></a>18.7 Unsupported features and known problems</H2> +<H2><a name="Chicken_nn18"></a>19.7 Unsupported features and known problems</H2> <ul> @@ -561,7 +561,7 @@ <a href="SWIGPlus.html#SWIGPlus_default_args">%feature(compactdefaultargs)</a>.</li> </ul> -<H3><a name="Chicken_nn19"></a>18.7.1 TinyCLOS problems with Chicken version <= 1.92</H3> +<H3><a name="Chicken_nn19"></a>19.7.1 TinyCLOS problems with Chicken version <= 1.92</H3> <p>In Chicken versions equal to or below 1.92, TinyCLOS has a limitation such that generic methods do not properly work on methods Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2008-12-20 01:45:11 UTC (rev 10990) +++ trunk/Doc/Manual/Contents.html 2008-12-20 01:49:58 UTC (rev 10991) @@ -483,11 +483,37 @@ </div> <!-- INDEX --> -<h3><a href="Modules.html#Modules">15 Working with Modules</a></h3> +<h3><a href="CCache.html#CCache">15 swig-ccache(1) manpage</a></h3> <!-- INDEX --> <div class="sectiontoc"> <ul> +<li><a href="CCache.html#CCache_nn2">NAME</a> +<li><a href="CCache.html#CCache_nn3">SYNOPSIS</a> +<li><a href="CCache.html#CCache_nn4">DESCRIPTION</a> +<li><a href="CCache.html#CCache_nn5">OPTIONS SUMMARY</a> +<li><a href="CCache.html#CCache_nn6">OPTIONS</a> +<li><a href="CCache.html#CCache_nn7">INSTALLATION</a> +<li><a href="CCache.html#CCache_nn8">EXTRA OPTIONS</a> +<li><a href="CCache.html#CCache_nn9">ENVIRONMENT VARIABLES</a> +<li><a href="CCache.html#CCache_nn10">CACHE SIZE MANAGEMENT</a> +<li><a href="CCache.html#CCache_nn11">CACHE COMPRESSION</a> +<li><a href="CCache.html#CCache_nn12">HOW IT WORKS</a> +<li><a href="CCache.html#CCache_nn13">USING CCACHE WITH DISTCC</a> +<li><a href="CCache.html#CCache_nn14">SHARING A CACHE</a> +<li><a href="CCache.html#CCache_nn15">HISTORY</a> +<li><a href="CCache.html#CCache_nn16">DIFFERENCES FROM COMPILERCACHE</a> +<li><a href="CCache.html#CCache_nn17">CREDITS</a> +<li><a href="CCache.html#CCache_nn18">AUTHOR</a> +</ul> +</div> +<!-- INDEX --> + +<h3><a href="Modules.html#Modules">16 Working with Modules</a></h3> + +<!-- INDEX --> +<div class="sectiontoc"> +<ul> <li><a href="Modules.html#Modules_nn1">Basics</a> <li><a href="Modules.html#Modules_nn2">The SWIG runtime code</a> <li><a href="Modules.html#external_run_time">External access to the runtime</a> @@ -498,7 +524,7 @@ </div> <!-- INDEX --> -<h3><a href="Allegrocl.html#Allegrocl">16 SWIG and Allegro Common Lisp</a></h3> +<h3><a href="Allegrocl.html#Allegrocl">17 SWIG and Allegro Common Lisp</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -582,7 +608,7 @@ </div> <!-- INDEX --> -<h3><a href="CSharp.html#CSharp">17 SWIG and C#</a></h3> +<h3><a href="CSharp.html#CSharp">18 SWIG and C#</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -621,7 +647,7 @@ </div> <!-- INDEX --> -<h3><a href="Chicken.html#Chicken">18 SWIG and Chicken</a></h3> +<h3><a href="Chicken.html#Chicken">19 SWIG and Chicken</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -659,7 +685,7 @@ </div> <!-- INDEX --> -<h3><a href="Guile.html#Guile">19 SWIG and Guile</a></h3> +<h3><a href="Guile.html#Guile">20 SWIG and Guile</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -694,7 +720,7 @@ </div> <!-- INDEX --> -<h3><a href="Java.html#Java">20 SWIG and Java</a></h3> +<h3><a href="Java.html#Java">21 SWIG and Java</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -836,7 +862,7 @@ </div> <!-- INDEX --> -<h3><a href="Lisp.html#Lisp">21 SWIG and Common Lisp</a></h3> +<h3><a href="Lisp.html#Lisp">22 SWIG and Common Lisp</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -859,7 +885,7 @@ </div> <!-- INDEX --> -<h3><a href="Lua.html#Lua">22 SWIG and Lua</a></h3> +<h3><a href="Lua.html#Lua">23 SWIG and Lua</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -901,7 +927,7 @@ </div> <!-- INDEX --> -<h3><a href="Modula3.html#Modula3">23 SWIG and Modula-3</a></h3> +<h3><a href="Modula3.html#Modula3">24 SWIG and Modula-3</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -942,7 +968,7 @@ </div> <!-- INDEX --> -<h3><a href="Mzscheme.html#Mzscheme">24 SWIG and MzScheme</a></h3> +<h3><a href="Mzscheme.html#Mzscheme">25 SWIG and MzScheme</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -952,7 +978,7 @@ </div> <!-- INDEX --> -<h3><a href="Ocaml.html#Ocaml">25 SWIG and Ocaml</a></h3> +<h3><a href="Ocaml.html#Ocaml">26 SWIG and Ocaml</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -1003,7 +1029,7 @@ </div> <!-- INDEX --> -<h3><a href="Octave.html#Octave">26 SWIG and Octave</a></h3> +<h3><a href="Octave.html#Octave">27 SWIG and Octave</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -1038,7 +1064,7 @@ </div> <!-- INDEX --> -<h3><a href="Perl5.html#Perl5">27 SWIG and Perl5</a></h3> +<h3><a href="Perl5.html#Perl5">28 SWIG and Perl5</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -1105,7 +1131,7 @@ </div> <!-- INDEX --> -<h3><a href="Php.html#Php">28 SWIG and PHP</a></h3> +<h3><a href="Php.html#Php">29 SWIG and PHP</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -1135,7 +1161,7 @@ </div> <!-- INDEX --> -<h3><a href="Pike.html#Pike">29 SWIG and Pike</a></h3> +<h3><a href="Pike.html#Pike">30 SWIG and Pike</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -1159,7 +1185,7 @@ </div> <!-- INDEX --> -<h3><a href="Python.html#Python">30 SWIG and Python</a></h3> +<h3><a href="Python.html#Python">31 SWIG and Python</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -1265,7 +1291,7 @@ </div> <!-- INDEX --> -<h3><a href="Ruby.html#Ruby">31 SWIG and Ruby</a></h3> +<h3><a href="Ruby.html#Ruby">32 SWIG and Ruby</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -1399,7 +1425,7 @@ </div> <!-- INDEX --> -<h3><a href="Tcl.html#Tcl">32 SWIG and Tcl</a></h3> +<h3><a href="Tcl.html#Tcl">33 SWIG and Tcl</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -1464,7 +1490,7 @@ </div> <!-- INDEX --> -<h3><a href="R.html#R">33 SWIG and R</a></h3> +<h3><a href="R.html#R">34 SWIG and R</a></h3> <!-- INDEX --> <div class="sectiontoc"> @@ -1480,7 +1506,7 @@ </div> <!-- INDEX --> -<h3><a href="Extending.html#Extending">34 Extending SWIG to support new languages</a></h3> +<h3><a href="Extending.html#Extending">35 Extending SWIG to support new languages</a></h3> <!-- INDEX --> <div class="sectiontoc"> Modified: trunk/Doc/Manual/Extending.html =================================================================== --- trunk/Doc/Manual/Extending.html 2008-12-20 01:45:11 UTC (rev 10990) +++ trunk/Doc/Manual/Extending.html 2008-12-20 01:49:58 UTC (rev 10991) @@ -6,7 +6,7 @@ </head> <body bgcolor="#ffffff"> -<H1><a name="Extending"></a>34 Extending SWIG to support new languages</H1> +<H1><a name="Extending"></a>35 Extending SWIG to support new languages</H1> <!-- INDEX --> <div class="sectiontoc"> <ul> @@ -73,7 +73,7 @@ -<H2><a name="Extending_nn2"></a>34.1 Introduction</H2> +<H2><a name="Extending_nn2"></a>35.1 Introduction</H2> <p> @@ -89,7 +89,7 @@ you should probably look at one of SWIG's existing modules. </p> -<H2><a name="Extending_nn3"></a>34.2 Prerequisites</H2> +<H2><a name="Extending_nn3"></a>35.2 Prerequisites</H2> <p> @@ -119,7 +119,7 @@ wrapper code are driven by C++ datatypes. </p> -<H2><a name="Extending_nn4"></a>34.3 The Big Picture</H2> +<H2><a name="Extending_nn4"></a>35.3 The Big Picture</H2> <p> @@ -156,7 +156,7 @@ based on pattern matching and interact heavily with the underlying type system. </p> -<H2><a name="Extending_nn5"></a>34.4 Execution Model</H2> +<H2><a name="Extending_nn5"></a>35.4 Execution Model</H2> <p> @@ -201,7 +201,7 @@ The next few sections briefly describe some of these stages. </p> -<H3><a name="Extending_nn6"></a>34.4.1 Preprocessing</H3> +<H3><a name="Extending_nn6"></a>35.4.1 Preprocessing</H3> <p> @@ -281,7 +281,7 @@ construction of the wrapper code. </p> -<H3><a name="Extending_nn7"></a>34.4.2 Parsing</H3> +<H3><a name="Extending_nn7"></a>35.4.2 Parsing</H3> <p> @@ -382,7 +382,7 @@ arguments). </p> -<H3><a name="Extending_nn8"></a>34.4.3 Parse Trees</H3> +<H3><a name="Extending_nn8"></a>35.4.3 Parse Trees</H3> <p> @@ -637,7 +637,7 @@ </pre> </div> -<H3><a name="Extending_nn9"></a>34.4.4 Attribute namespaces</H3> +<H3><a name="Extending_nn9"></a>35.4.4 Attribute namespaces</H3> <p> @@ -656,7 +656,7 @@ <tt>perl:foo</tt>. </p> -<H3><a name="Extending_nn10"></a>34.4.5 Symbol Tables</H3> +<H3><a name="Extending_nn10"></a>35.4.5 Symbol Tables</H3> <p> @@ -747,7 +747,7 @@ </pre> </div> -<H3><a name="Extending_nn11"></a>34.4.6 The %feature directive</H3> +<H3><a name="Extending_nn11"></a>35.4.6 The %feature directive</H3> <p> @@ -803,7 +803,7 @@ stored without any modifications. </p> -<H3><a name="Extending_nn12"></a>34.4.7 Code Generation</H3> +<H3><a name="Extending_nn12"></a>35.4.7 Code Generation</H3> <p> @@ -925,7 +925,7 @@ The role of these functions is described shortly. </p> -<H3><a name="Extending_nn13"></a>34.4.8 SWIG and XML</H3> +<H3><a name="Extending_nn13"></a>35.4.8 SWIG and XML</H3> <p> @@ -938,7 +938,7 @@ your mind as a model. </p> -<H2><a name="Extending_nn14"></a>34.5 Primitive Data Structures</H2> +<H2><a name="Extending_nn14"></a>35.5 Primitive Data Structures</H2> <p> @@ -984,7 +984,7 @@ </pre> </div> -<H3><a name="Extending_nn15"></a>34.5.1 Strings</H3> +<H3><a name="Extending_nn15"></a>35.5.1 Strings</H3> <p> @@ -1125,7 +1125,7 @@ </div> -<H3><a name="Extending_nn16"></a>34.5.2 Hashes</H3> +<H3><a name="Extending_nn16"></a>35.5.2 Hashes</H3> <p> @@ -1202,7 +1202,7 @@ </div> -<H3><a name="Extending_nn17"></a>34.5.3 Lists</H3> +<H3><a name="Extending_nn17"></a>35.5.3 Lists</H3> <p> @@ -1291,7 +1291,7 @@ and is used to create a String object. </div> -<H3><a name="Extending_nn18"></a>34.5.4 Common operations</H3> +<H3><a name="Extending_nn18"></a>35.5.4 Common operations</H3> The following operations are applicable to all datatypes. @@ -1346,7 +1346,7 @@ Gets the line number associated with <tt>x</tt>. </div> -<H3><a name="Extending_nn19"></a>34.5.5 Iterating over Lists and Hashes</H3> +<H3><a name="Extending_nn19"></a>35.5.5 Iterating over Lists and Hashes</H3> To iterate over the elements of a list or a hash table, the following functions are used: @@ -1391,7 +1391,7 @@ </div> -<H3><a name="Extending_nn20"></a>34.5.6 I/O</H3> +<H3><a name="Extending_nn20"></a>35.5.6 I/O</H3> Special I/O functions are used for all internal I/O. These operations @@ -1527,7 +1527,7 @@ </div> -<H2><a name="Extending_nn21"></a>34.6 Navigating and manipulating parse trees</H2> +<H2><a name="Extending_nn21"></a>35.6 Navigating and manipulating parse trees</H2> Parse trees are built as collections of hash tables. Each node is a hash table in which @@ -1661,7 +1661,7 @@ the parent so that sibling nodes are unaffected. </div> -<H2><a name="Extending_nn22"></a>34.7 Working with attributes</H2> +<H2><a name="Extending_nn22"></a>35.7 Working with attributes</H2> <p> @@ -1778,7 +1778,7 @@ function. </div> -<H2><a name="Extending_nn23"></a>34.8 Type system</H2> +<H2><a name="Extending_nn23"></a>35.8 Type system</H2> <p> @@ -1787,7 +1787,7 @@ type theory is impossible here. However, let's cover the highlights. </p> -<H3><a name="Extending_nn24"></a>34.8.1 String encoding of types</H3> +<H3><a name="Extending_nn24"></a>35.8.1 String encoding of types</H3> <p> @@ -1888,7 +1888,7 @@ string concatenation. </p> -<H3><a name="Extending_nn25"></a>34.8.2 Type construction</H3> +<H3><a name="Extending_nn25"></a>35.8.2 Type construction</H3> <p> @@ -2057,7 +2057,7 @@ <tt>ty</tt> is unmodified. </div> -<H3><a name="Extending_nn26"></a>34.8.3 Type tests</H3> +<H3><a name="Extending_nn26"></a>35.8.3 Type tests</H3> <p> @@ -2144,7 +2144,7 @@ Checks if <tt>ty</tt> is a templatized type. </div> -<H3><a name="Extending_nn27"></a>34.8.4 Typedef and inheritance</H3> +<H3><a name="Extending_nn27"></a>35.8.4 Typedef and inheritance</H3> <p> @@ -2246,7 +2246,7 @@ will consist only of primitive typenames. </div> -<H3><a name="Extending_nn28"></a>34.8.5 Lvalues</H3> +<H3><a name="Extending_nn28"></a>35.8.5 Lvalues</H3> <p> @@ -2283,7 +2283,7 @@ </pre> </div> -<H3><a name="Extending_nn29"></a>34.8.6 Output functions</H3> +<H3><a name="Extending_nn29"></a>35.8.6 Output functions</H3> <p> @@ -2345,7 +2345,7 @@ that appear in wrappers (e.g., <tt>SWIGTYPE_p_double</tt>). </div> -<H2><a name="Extending_nn30"></a>34.9 Parameters</H2> +<H2><a name="Extending_nn30"></a>35.9 Parameters</H2> <p> @@ -2444,7 +2444,7 @@ Returns the number of required (non-optional) arguments in <tt>p</tt>. </div> -<H2><a name="Extending_nn31"></a>34.10 Writing a Language Module</H2> +<H2><a name="Extending_nn31"></a>35.10 Writing a Language Module</H2> <p> @@ -2459,7 +2459,7 @@ this to other languages. </p> -<H3><a name="Extending_nn32"></a>34.10.1 Execution model</H3> +<H3><a name="Extending_nn32"></a>35.10.1 Execution model</H3> <p> @@ -2469,7 +2469,7 @@ different methods of the <tt>Language</tt> that must be defined by your module. </p> -<H3><a name="Extending_nn33"></a>34.10.2 Starting out</H3> +<H3><a name="Extending_nn33"></a>35.10.2 Starting out</H3> <p> @@ -2577,7 +2577,7 @@ messages from your new module should appear. </p> -<H3><a name="Extending_nn34"></a>34.10.3 Command line options</H3> +<H3><a name="Extending_nn34"></a>35.10.3 Command line options</H3> <p> @@ -2636,7 +2636,7 @@ unrecognized command line option error. </p> -<H3><a name="Extending_nn35"></a>34.10.4 Configuration and preprocessing</H3> +<H3><a name="Extending_nn35"></a>35.10.4 Configuration and preprocessing</H3> <p> @@ -2685,7 +2685,7 @@ <tt>python.swg</tt>. </p> -<H3><a name="Extending_nn36"></a>34.10.5 Entry point to code generation</H3> +<H3><a name="Extending_nn36"></a>35.10.5 Entry point to code generation</H3> <p> @@ -2743,7 +2743,7 @@ </pre> </div> -<H3><a name="Extending_nn37"></a>34.10.6 Module I/O and wrapper skeleton</H3> +<H3><a name="Extending_nn37"></a>35.10.6 Module I/O and wrapper skeleton</H3> <!-- please report bugs in this section to mgossage --> @@ -2885,7 +2885,7 @@ </pre> </div> -<H3><a name="Extending_nn38"></a>34.10.7 Low-level code generators</H3> +<H3><a name="Extending_nn38"></a>35.10.7 Low-level code generators</H3> <!-- please report bugs in this section to mgossage --> @@ -3039,7 +3039,7 @@ </p> -<H3><a name="Extending_nn39"></a>34.10.8 Configuration files</H3> +<H3><a name="Extending_nn39"></a>35.10.8 Configuration files</H3> <!-- please report bugs in this section to ttn --> @@ -3189,7 +3189,7 @@ </dl> -<H3><a name="Extending_nn40"></a>34.10.9 Runtime support</H3> +<H3><a name="Extending_nn40"></a>35.10.9 Runtime support</H3> <p> @@ -3198,7 +3198,7 @@ the SWIG files that implement those functions. </p> -<H3><a name="Extending_nn41"></a>34.10.10 Standard library files</H3> +<H3><a name="Extending_nn41"></a>35.10.10 Standard library files</H3> <p> @@ -3217,7 +3217,7 @@ Please copy these and modify for any new language. </p> -<H3><a name="Extending_nn42"></a>34.10.11 Examples and test cases</H3> +<H3><a name="Extending_nn42"></a>35.10.11 Examples and test cases</H3> <p> @@ -3246,7 +3246,7 @@ files</a>. </p> -<H3><a name="Extending_nn43"></a>34.10.12 Documentation</H3> +<H3><a name="Extending_nn43"></a>35.10.12 Documentation</H3> <p> @@ -3278,7 +3278,7 @@ if available. </ul> -<H3><a name="Extending_prerequisites"></a>34.10.13 Prerequisites for adding a new language module to the SWIG distribution</H3> +<H3><a name="Extending_prerequisites"></a>35.10.13 Prerequisites for adding a new language module to the SWIG distribution</H3> <p> @@ -3335,7 +3335,7 @@ the existing tests. </p> -<H3><a name="Extending_coding_style_guidelines"></a>34.10.14 Coding style guidelines</H3> +<H3><a name="Extending_coding_style_guidelines"></a>35.10.14 Coding style guidelines</H3> <p> @@ -3359,13 +3359,13 @@ should be avoided as unlike the SWIG developers, users will never have consistent tab settings. </p> -<H2><a name="Extending_nn44"></a>34.11 Typemaps</H2> +<H2><a name="Extending_nn44"></a>35.11 Typemaps</H2> -<H3><a name="Extending_nn45"></a>34.11.1 Proxy classes</H3> +<H3><a name="Extending_nn45"></a>35.11.1 Proxy classes</H3> -<H2><a name="Extending_nn46"></a>34.12 Guide to parse tree nodes</H2> +<H2><a name="Extending_nn46"></a>35.12 Guide to parse tree nodes</H2> <p> Modified: trunk/Doc/Manual/Guile.html =================================================================== --- trunk/Doc/Manual/Guile.html 2008-12-20 01:45:11 UTC (rev 10990) +++ trunk/Doc/Manual/Guile.html 2008-12-20 01:49:58 UTC (rev 10991) @@ -8,7 +8,7 @@ <body bgcolor="#ffffff"> -<H1><a name="Guile"></a>19 SWIG and Guile</H1> +<H1><a name="Guile"></a>20 SWIG and Guile</H1> <!-- INDEX --> <div class="sectiontoc"> <ul> @@ -47,7 +47,7 @@ <p> This section details guile-specific support in SWIG. -<H2><a name="Guile_nn2"></a>19.1 Meaning of "Module"</H2> +<H2><a name="Guile_nn2"></a>20.1 Meaning of "Module"</H2> <p> @@ -55,7 +55,7 @@ separately for SWIG, Guile, and Libtool. To avoid horrible confusion, we explicitly prefix the context, e.g., "guile-module". -<H2><a name="Guile_nn3"></a>19.2 Using the SCM or GH Guile API</H2> +<H2><a name="Guile_nn3"></a>20.2 Using the SCM or GH Guile API</H2> <p>The guile module can currently export wrapper files that use the guile GH interface or the @@ -103,7 +103,7 @@ but there is no reason other languages (like mzscheme or chicken) couldn't also use this. If that happens, there is A LOT less code duplication in the standard typemaps.</p> -<H2><a name="Guile_nn4"></a>19.3 Linkage</H2> +<H2><a name="Guile_nn4"></a>20.3 Linkage</H2> <p> @@ -111,7 +111,7 @@ which manifests in multiple shared-library usage conventions. A set of policies implementing a usage convention is called a <b>linkage</b>. -<H3><a name="Guile_nn5"></a>19.3.1 Simple Linkage</H3> +<H3><a name="Guile_nn5"></a>20.3.1 Simple Linkage</H3> <p> @@ -206,7 +206,7 @@ <code>SWIG_init</code> via a preprocessor define to avoid symbol clashes. For this case, however, passive linkage is available. -<H3><a name="Guile_nn6"></a>19.3.2 Passive Linkage</H3> +<H3><a name="Guile_nn6"></a>20.3.2 Passive Linkage</H3> <p>Passive linkage is just like simple linkage, but it generates an @@ -216,7 +216,7 @@ <p>You should use passive linkage rather than simple linkage when you are using multiple modules. -<H3><a name="Guile_nn7"></a>19.3.3 Native Guile Module Linkage</H3> +<H3><a name="Guile_nn7"></a>20.3.3 Native Guile Module Linkage</H3> <p>SWIG can also generate wrapper code that does all the Guile module @@ -257,7 +257,7 @@ </div> </ul> -<H3><a name="Guile_nn8"></a>19.3.4 Old Auto-Loading Guile Module Linkage</H3> +<H3><a name="Guile_nn8"></a>20.3.4 Old Auto-Loading Guile Module Linkage</H3> <p>Guile used to support an autoloading facility for object-code @@ -283,7 +283,7 @@ an appropriate name. -<H3><a name="Guile_nn9"></a>19.3.5 Hobbit4D Linkage</H3> +<H3><a name="Guile_nn9"></a>20.3.5 Hobbit4D Linkage</H3> <p> @@ -308,7 +308,7 @@ experimental; the (hobbit4d link) conventions are not well understood. </p> -<H2><a name="Guile_nn10"></a>19.4 Underscore Folding</H2> +<H2><a name="Guile_nn10"></a>20.4 Underscore Folding</H2> <p> @@ -320,7 +320,7 @@ <code>%rename</code> to specify the Guile name of the wrapped functions and variables (see CHANGES). -<H2><a name="Guile_nn11"></a>19.5 Typemaps</H2> +<H2><a name="Guile_nn11"></a>20.5 Typemaps</H2> <p> @@ -412,7 +412,7 @@ <a href="Customization.html#features">Features and the %feature directive</a> for info on how to apply the %feature.</p> -<H2><a name="Guile_nn12"></a>19.6 Representation of pointers as smobs</H2> +<H2><a name="Guile_nn12"></a>20.6 Representation of pointers as smobs</H2> <p> @@ -433,7 +433,7 @@ If the Scheme object passed was not a SWIG smob representing a compatible pointer, a <code>wrong-type-arg</code> exception is raised. -<H3><a name="Guile_nn13"></a>19.6.1 GH Smobs</H3> +<H3><a name="Guile_nn13"></a>20.6.1 GH Smobs</H3> <p> @@ -462,7 +462,7 @@ Once we have a swig_type_info structure, we loop through the linked list of casts, using pointer comparisons.</p> -<H3><a name="Guile_nn14"></a>19.6.2 SCM Smobs</H3> +<H3><a name="Guile_nn14"></a>20.6.2 SCM Smobs</H3> <p>The SCM interface (using the "-scm" argument to swig) uses swigrun.swg. @@ -477,7 +477,7 @@ GOOPS class.</p> -<H3><a name="Guile_nn15"></a>19.6.3 Garbage Collection</H3> +<H3><a name="Guile_nn15"></a>20.6.3 Garbage Collection</H3> <p>Garbage collection is a feature of the new SCM interface, and it is automatically included @@ -491,7 +491,7 @@ Object ownership and %newobject</a> in the SWIG manual. All typemaps use an $owner var, and the guile module replaces $owner with 0 or 1 depending on feature:new.</p> -<H2><a name="Guile_nn16"></a>19.7 Exception Handling</H2> +<H2><a name="Guile_nn16"></a>20.7 Exception Handling</H2> <p> @@ -517,7 +517,7 @@ The default when not specified here is to use "swig-error". See Lib/exception.i for details. -<H2><a name="Guile_nn17"></a>19.8 Procedure documentation</H2> +<H2><a name="Guile_nn17"></a>20.8 Procedure documentation</H2> <p>If invoked with the command-line option <code>-procdoc @@ -553,7 +553,7 @@ typemap argument <code>doc</code>. See <code>Lib/guile/typemaps.i</code> for details. -<H2><a name="Guile_nn18"></a>19.9 Procedures with setters</H2> +<H2><a name="Guile_nn18"></a>20.9 Procedures with setters</H2> <p>For global variables, SWIG creates a single wrapper procedure @@ -581,7 +581,7 @@ pointer)</code> and <code>(<var>struct-member</var>-set pointer value)</code> are <em>not</em> generated. -<H2><a name="Guile_nn19"></a>19.10 GOOPS Proxy Classes</H2> +<H2><a name="Guile_nn19"></a>20.10 GOOPS Proxy Classes</H2> <p>SWIG can also generate classes and generic functions for use with @@ -730,7 +730,7 @@ <code>%import "foo.h"</code> before the <code>%inline</code> block. </p> -<H3><a name="Guile_nn20"></a>19.10.1 Naming Issues</H3> +<H3><a name="Guile_nn20"></a>20.10.1 Naming Issues</H3> <p>As you can see in the example above, there are potential naming conflicts. The default exported @@ -769,7 +769,7 @@ <p>TODO: Renaming class name prefixes?</p> -<H3><a name="Guile_nn21"></a>19.10.2 Linking</H3> +<H3><a name="Guile_nn21"></a>20.10.2 Linking</H3> <p>The guile-modules generated above all need to be linked together. GOOPS support requires Modified: trunk/Doc/Manual/Java.html =================================================================== --- trunk/Doc/Manual/Java.html 2008-12-20 01:45:11 UTC (rev 10990) +++ trunk/Doc/Manual/Java.html 2008-12-20 01:49:58 UTC (rev 10991) @@ -5,7 +5,7 @@ <link rel="stylesheet" type="text/css" href="style.css"> </head> <body bgcolor="#FFFFFF"> -<H1><a name="Java"></a>20 SWIG and Java</H1> +<H1><a name="Java"></a>21 SWIG and Java</H1> <!-- INDEX --> <div class="sectiontoc"> <ul> @@ -154,7 +154,7 @@ </p> -<H2><a name="java_overview"></a>20.1 Overview</H2> +<H2><a name="java_overview"></a>21.1 Overview</H2> <p> @@ -189,7 +189,7 @@ The latter sections cover the advanced techniques of using typemaps for complete control of the wrapping process. </p> -<H2><a name="java_preliminaries"></a>20.2 Preliminaries</H2> +<H2><a name="java_preliminaries"></a>21.2 Preliminaries</H2> <p> @@ -205,7 +205,7 @@ The Java module requires your system to support shared libraries and dynamic loading. This is the commonly used method to load JNI code so your system will more than likely support this.</p> -<H3><a name="running_swig"></a>20.2.1 Running SWIG</H3> +<H3><a name="running_swig"></a>21.2.1 Running SWIG</H3> <p> @@ -258,7 +258,7 @@ compiling and using the generated files. </p> -<H3><a name="java_commandline"></a>20.2.2 Additional Commandline Options</H3> +<H3><a name="java_commandline"></a>21.2.2 Additional Commandline Options</H3> <p> @@ -295,7 +295,7 @@ Their use will become clearer by the time you have finished reading this section on SWIG and Java. </p> -<H3><a name="getting_right_headers"></a>20.2.3 Getting the right header files</H3> +<H3><a name="getting_right_headers"></a>21.2.3 Getting the right header files</H3> <p> @@ -310,7 +310,7 @@ <p> The exact location may vary on your machine, but the above locations are typical. </p> -<H3><a name="compiling_dynamic"></a>20.2.4 Compiling a dynamic module</H3> +<H3><a name="compiling_dynamic"></a>21.2.4 Compiling a dynamic module</H3> <p> @@ -346,7 +346,7 @@ If the name of your SWIG module is "<tt>example</tt>", the name of the corresponding shared library file should be "<tt>libexample.so</tt>" (or equivalent depending on your machine, see <a href="#dynamic_linking_problems">Dynamic linking problems</a> for more information). The name of the module is specified using the <tt>%module</tt> directive or<tt> -module</tt> command line option.</p> -<H3><a name="using_module"></a>20.2.5 Using your module</H3> +<H3><a name="using_module"></a>21.2.5 Using your module</H3> <p> @@ -381,7 +381,7 @@ If it doesn't work have a look at the following section which discusses problems loading the shared library. </p> -<H3><a name="dynamic_linking_problems"></a>20.2.6 Dynamic linking problems</H3> +<H3><a name="dynamic_linking_problems"></a>21.2.6 Dynamic linking problems</H3> <p> @@ -455,7 +455,7 @@ </p> -<H3><a name="compilation_problems_cpp"></a>20.2.7 Compilation problems and compiling with C++</H3> +<H3><a name="compilation_problems_cpp"></a>21.2.7 Compilation problems and compiling with C++</H3> <p> @@ -508,7 +508,7 @@ </p> -<H3><a name="building_windows"></a>20.2.8 Building on Windows</H3> +<H3><a name="building_windows"></a>21.2.8 Building on Windows</H3> <p> @@ -517,7 +517,7 @@ This section covers the process of using SWIG with Microsoft Visual C++ 6 although the procedure may be similar with other compilers. In order for everything to work, you will need to have a JDK installed on your machine in order to read the JNI header files.</p> -<H4><a name="visual_studio"></a>20.2.8.1 Running SWIG from Visual Studio</H4> +<H4><a name="visual_studio"></a>21.2.8.1 Running SWIG from Visual Studio</H4> <p> @@ -556,7 +556,7 @@ If the library fails to load have a look at <a href="#dynamic_linking_problems">Dynamic linking problems</a>. </p> -<H4><a name="nmake"></a>20.2.8.2 Using NMAKE</H4> +<H4><a name="nmake"></a>21.2.8.2 Using NMAKE</H4> <p> @@ -615,7 +615,7 @@ </p> -<H2><a name="java_basic_tour"></a>20.3 A tour of basic C/C++ wrapping</H2> +<H2><a name="java_basic_tour"></a>21.3 A tour of basic C/C++ wrapping</H2> <p> @@ -625,7 +625,7 @@ This section briefly covers the essential aspects of this wrapping. </p> -<H3><a name="module_packages_classes"></a>20.3.1 Modules, packages and generated Java classes</H3> +<H3><a name="module_packages_classes"></a>21.3.1 Modules, packages and generated Java classes</H3> <p> @@ -659,7 +659,7 @@ SWIG won't create the directory, so make sure it exists beforehand. -<H3><a name="functions"></a>20.3.2 Functions</H3> +<H3><a name="functions"></a>21.3.2 Functions</H3> <p> @@ -693,7 +693,7 @@ </pre></div> -<H3><a name="global_variables"></a>20.3.3 Global variables</H3> +<H3><a name="global_variables"></a>21.3.3 Global variables</H3> <p> @@ -780,7 +780,7 @@ </div> -<H3><a name="constants"></a>20.3.4 Constants</H3> +<H3><a name="constants"></a>21.3.4 Constants</H3> <p> @@ -920,7 +920,7 @@ </p> -<H3><a name="enumerations"></a>20.3.5 Enumerations</H3> +<H3><a name="enumerations"></a>21.3.5 Enumerations</H3> <p> @@ -934,7 +934,7 @@ Before looking at the various approaches for wrapping named C/C++ enums, anonymous enums are considered. </p> -<H4><a name="anonymous_enums"></a>20.3.5.1 Anonymous enums</H4> +<H4><a name="anonymous_enums"></a>21.3.5.1 Anonymous enums</H4> <p> @@ -997,7 +997,7 @@ </p> -<H4><a name="typesafe_enums"></a>20.3.5.2 Typesafe enums</H4> +<H4><a name="typesafe_enums"></a>21.3.5.2 Typesafe enums</H4> <p> @@ -1090,7 +1090,7 @@ The following section details proper Java enum generation. </p> -<H4><a name="proper_enums"></a>20.3.5.3 Proper Java enums</H4> +<H4><a name="proper_enums"></a>21.3.5.3 Proper Java enums</H4> <p> @@ -1143,7 +1143,7 @@ <a href="#simpler_enum_classes">Simpler Java enums for enums without initializers</a> section. </p> -<H4><a name="typeunsafe_enums"></a>20.3.5.4 Type unsafe enums</H4> +<H4><a name="typeunsafe_enums"></a>21.3.5.4 Type unsafe enums</H4> <p> @@ -1191,7 +1191,7 @@ Thus the upgrade path to proper enums provided in JDK 1.5 is more painful. </p> -<H4><a name="simple_enums"></a>20.3.5.5 Simple enums</H4> +<H4><a name="simple_enums"></a>21.3.5.5 Simple enums</H4> <p> @@ -1210,7 +1210,7 @@ The type unsafe approach is preferable to this one and this simple approach is only included for backwards compatibility with these earlier versions of SWIG. </p> -<H3><a name="pointers"></a>20.3.6 Pointers</H3> +<H3><a name="pointers"></a>21.3.6 Pointers</H3> <p> @@ -1298,7 +1298,7 @@ a NULL pointer if the conversion can't be performed. </p> -<H3><a name="structures"></a>20.3.7 Structures</H3> +<H3><a name="structures"></a>21.3.7 Structures</H3> <p> @@ -1466,7 +1466,7 @@ </div> -<H3><a name="classes"></a>20.3.8 C++ classes</H3> +<H3><a name="classes"></a>21.3.8 C++ classes</H3> <p> @@ -1529,7 +1529,7 @@ </div> -<H3><a name="inheritance"></a>20.3.9 C++ inheritance</H3> +<H3><a name="inheritance"></a>21.3.9 C++ inheritance</H3> <p> @@ -1590,7 +1590,7 @@ A warning is given when multiple inheritance is detected and only the first base class is used. </p> -<H3><a name="pointers_refs_arrays"></a>20.3.10 Pointers, references, arrays and pass by value</H3> +<H3><a name="pointers_refs_arrays"></a>21.3.10 Pointers, references, arrays and pass by value</H3> <p> @@ -1645,7 +1645,7 @@ when the returned object's finalizer is run by the garbage collector). </p> -<H4><a name="null_pointers"></a>20.3.10.1 Null pointers</H4> +<H4><a name="null_pointers"></a>21.3.10.1 Null pointers</H4> <p> @@ -1669,7 +1669,7 @@ The converse also occurs, that is, NULL pointers are translated into <tt>null</tt> Java objects when returned from a C/C++ function. </p> -<H3><a name="overloaded_functions"></a>20.3.11 C++ overloaded functions</H3> +<H3><a name="overloaded_functions"></a>21.3.11 C++ overloaded functions</H3> <p> @@ -1784,7 +1784,7 @@ </pre> </div> -<H3><a name="java_default_arguments"></a>20.3.12 C++ default arguments</H3> +<H3><a name="java_default_arguments"></a>21.3.12 C++ default arguments</H3> <p> @@ -1827,7 +1827,7 @@ </p> -<H3><a name="namespaces"></a>20.3.13 C++ namespaces</H3> +<H3><a name="namespaces"></a>21.3.13 C++ namespaces</H3> <p> @@ -1887,7 +1887,7 @@ Each SWIG module can be placed into a separate package. </p> -<H3><a name="templates"></a>20.3.14 C++ templates</H3> +<H3><a name="templates"></a>21.3.14 C++ templates</H3> <p> @@ -1936,7 +1936,7 @@ More details can be found in the <a href="SWIGPlus.html#SWIGPlus">SWIG and C++</a> chapter. </p> -<H3><a name="smart_pointers"></a>20.3.15 C++ Smart Pointers</H3> +<H3><a name="smart_pointers"></a>21.3.15 C++ Smart Pointers</H3> <p> @@ -2020,7 +2020,7 @@ </pre> </div> -<H2><a name="further_details"></a>20.4 Further details on the generated Java classes</H2> +<H2><a name="further_details"></a>21.4 Further details on the generated Java classes</H2> <p> @@ -2035,7 +2035,7 @@ First, the crucial intermediary JNI class is considered. </p> -<H3><a name="imclass"></a>20.4.1 The intermediary JNI class</H3> +<H3><a name="imclass"></a>21.4.1 The intermediary JNI class</H3> <p> @@ -2155,7 +2155,7 @@ from <tt>modulename</tt> to <tt>modulenameModule</tt>. </p> -<H4><a name="imclass_pragmas"></a>20.4.1.1 The intermediary JNI class pragmas</H4> +<H4><a name="imclass_pragmas"></a>21.4.1.1 The intermediary JNI class pragmas</H4> <p> @@ -2234,7 +2234,7 @@ All the methods in the intermediary JNI class will then be callable outside of the package as the method modifiers are public by default. </p> -<H3><a name="java_module_class"></a>20.4.2 The Java module class</H3> +<H3><a name="java_module_class"></a>21.4.2 The Java module class</H3> <p> @@ -2265,7 +2265,7 @@ The primary reason for having the module class wrapping the calls in the intermediary JNI class is to implement static type checking. In this case only a <tt>Foo</tt> can be passed to the <tt>egg</tt> function, whereas any <tt>long</tt> can be passed to the <tt>egg</tt> function in the intermediary JNI class. </p> -<H4><a name="module_class_pragmas"></a>20.4.2.1 The Java module class pragmas</H4> +<H4><a name="module_class_pragmas"></a>21.4.2.1 The Java module class pragmas</H4> <p> @@ -2316,7 +2316,7 @@ </p> -<H3><a name="java_proxy_classes"></a>20.4.3 Java proxy classes</H3> +<H3><a name="java_proxy_classes"></a>21.4.3 Java proxy classes</H3> <p> @@ -2392,7 +2392,7 @@ </pre> </div> -<H4><a name="memory_management"></a>20.4.3.1 Memory management</H4> +<H4><a name="memory_management"></a>21.4.3.1 Memory management</H4> <p> @@ -2554,7 +2554,7 @@ </p> -<H4><a name="inheritance_mirroring"></a>20.4.3.2 Inheritance</H4> +<H4><a name="inheritance_mirroring"></a>21.4.3.2 Inheritance</H4> <p> @@ -2670,7 +2670,7 @@ </p> -<H4><a name="proxy_classes_gc"></a>20.4.3.3 Proxy classes and garbage collection</H4> +<H4><a name="proxy_classes_gc"></a>21.4.3.3 Proxy classes and garbage collection</H4> <p> @@ -2753,7 +2753,7 @@ See the <a href="http://www.devx.com/Java/Article/30192">How to Handle Java Finalization's Memory-Retention Issues</a> article for alternative approaches to managing memory by avoiding finalizers altogether. </p> -<H4><a name="java_pgcpp"></a>20.4.3.4 The premature garbage collection prevention parameter for proxy class marshalling</H4> +<H4><a name="java_pgcpp"></a>21.4.3.4 The premature garbage collection prevention parameter for proxy class marshalling</H4> <p> @@ -2875,7 +2875,7 @@ <b>Compatibility note:</b> The generation of this additional parameter did not occur in versions prior to SWIG-1.3.30. </p> -<H4><a name="java_multithread_libraries"></a>20.4.3.5 Single threaded applications and thread safety</H4> +<H4><a name="java_multithread_libraries"></a>21.4.3.5 Single threaded applications and thread safety</H4> <p> @@ -2963,7 +2963,7 @@ </pre></div> -<H3><a name="type_wrapper_classes"></a>20.4.4 Type wrapper classes</H3> +<H3><a name="type_wrapper_classes"></a>21.4.4 Type wrapper classes</H3> <p> @@ -3050,7 +3050,7 @@ </div> -<H3><a name="enum_classes"></a>20.4.5 Enum classes</H3> +<H3><a name="enum_classes"></a>21.4.5 Enum classes</H3> <p> @@ -3059,7 +3059,7 @@ The following sub-sections detail the various types of enum classes that can be generated. </p> -<H4><a name="typesafe_enums_classes"></a>20.4.5.1 Typesafe enum classes</H4> +<H4><a name="typesafe_enums_classes"></a>21.4.5.1 Typesafe enum classes</H4> <p> @@ -3143,7 +3143,7 @@ The <tt>toString</tt> method is overridden so that the enum name is available. </p> -<H4><a name="proper_enums_classes"></a>20.4.5.2 Proper Java enum classes</H4> +<H4><a name="proper_enums_classes"></a>21.4.5.2 Proper Java enum classes</H4> <p> @@ -3221,7 +3221,7 @@ <a href="#simpler_enum_classes">Simpler Java enums for enums without initializers</a> section describes how typemaps can be used to achieve this. </p> -<H4><a name="typeunsafe_enums_classes"></a>20.4.5.3 Type unsafe enum classes</H4> +<H4><a name="typeunsafe_enums_classes"></a>21.4.5.3 Type unsafe enum classes</H4> <p> @@ -3252,7 +3252,7 @@ </pre> </div> -<H2><a name="java_directors"></a>20.5 Cross language polymorphism using directors</H2> +<H2><a name="java_directors"></a>21.5 Cross language polymorphism using directors</H2> <p> @@ -3274,7 +3274,7 @@ Neither C++ code nor Java code needs to know where a particular method is implemented: the ... [truncated message content] |
From: <wsf...@us...> - 2009-06-17 06:50:40
|
Revision: 11282 http://swig.svn.sourceforge.net/swig/?rev=11282&view=rev Author: wsfulton Date: 2009-06-17 06:50:39 +0000 (Wed, 17 Jun 2009) Log Message: ----------- better clarification for %include and #include and %module Modified Paths: -------------- trunk/Doc/Manual/CSharp.html trunk/Doc/Manual/Java.html trunk/Doc/Manual/SWIG.html Modified: trunk/Doc/Manual/CSharp.html =================================================================== --- trunk/Doc/Manual/CSharp.html 2009-06-16 20:39:53 UTC (rev 11281) +++ trunk/Doc/Manual/CSharp.html 2009-06-17 06:50:39 UTC (rev 11282) @@ -99,6 +99,7 @@ ... } </pre></div> +Note that by default, the generated C# classes have no namespace and the module name is unrelated to namespaces. The module name is just like in Java and is merely used to name some of the generated classes. </li> <li> @@ -131,7 +132,7 @@ C# doesn't support the notion of throws clauses. Therefore there is no 'throws' typemap attribute support for adding exception classes to a throws clause. Likewise there is no need for an equivalent to <tt>%javaexception</tt>. -In fact, throwing C# exceptions works quite differently, see <a href="CSharp.html#csharp_exceptions">C# Exceptions></a> below. +In fact, throwing C# exceptions works quite differently, see <a href="CSharp.html#csharp_exceptions">C# Exceptions</a> below. </li> <li> Modified: trunk/Doc/Manual/Java.html =================================================================== --- trunk/Doc/Manual/Java.html 2009-06-16 20:39:53 UTC (rev 11281) +++ trunk/Doc/Manual/Java.html 2009-06-17 06:50:39 UTC (rev 11282) @@ -254,6 +254,12 @@ </p> <p> +The module name, specified with <tt>%module</tt>, determines the name of various generated classes as discussed <a href=#module_packages_classes>later</a>. +Note that the module name does not define a Java package and by default, the generated Java classes do not have a Java package. +The <tt>-package</tt> option described below can specify a Java package name to use. +</p> + +<p> The following sections have further practical examples and details on how you might go about compiling and using the generated files. </p> Modified: trunk/Doc/Manual/SWIG.html =================================================================== --- trunk/Doc/Manual/SWIG.html 2009-06-16 20:39:53 UTC (rev 11281) +++ trunk/Doc/Manual/SWIG.html 2009-06-17 06:50:39 UTC (rev 11282) @@ -177,8 +177,10 @@ The name of the module is supplied using the special <tt>%module</tt> directive (or the <tt>-module</tt> command line option). This directive must appear at the beginning of the file and is used to name -the resulting extension module (in addition, this name often defines -a namespace in the target language). If the module name is supplied on the +the resulting target language extension module. Exactly what this results +in depends on the target language, eg the module name can define +a target language namespace or merely be a useful name for naming files or helper classes. +If the module name is supplied on the command line, it overrides the name specified with the <tt>%module</tt> directive. </p> @@ -2361,7 +2363,7 @@ #include "vector.h" %} -%include vector.h // Just grab original C header file +%include "vector.h" // Just grab original C header file %extend Vector { // Attach these functions to struct Vector Vector(double x, double y, double z) { Vector *v; @@ -2883,10 +2885,16 @@ SWIG's <tt>%include</tt> directive to process an entire C source/header file. -<li>Make sure everything in the interface file uses ANSI C/C++syntax. +<li>Make sure everything in the interface file uses ANSI C/C++ syntax. <li>Make sure all necessary `<tt>typedef</tt>' declarations and -type-information is available in the interface file. +type-information is available in the interface file. +In particular, ensure that the type information is specified in the correct order as required by a C compiler. +In particular, define a type before it is used! A C compiler will tell you +if the full type information is not available when it is needed, whereas +SWIG will usually not warn or error out as it is designed to work without +full type information. However, if type information is not specified +correctly, the wrappers can be sub-optimal. <li>If your program has a main() function, you may need to rename it (read on). @@ -2945,16 +2953,21 @@ <p> Of course, in this case, our header file is pretty simple so we could -have made an interface file like this as well:</p> +use a simpler approach and use an interface file like this:</p> <div class="code"><pre> /* File : interface.i */ %module mymodule -%include header.h +%{ +#include "header.h" +%} +%include "header.h" </pre></div> <p> -Naturally, your mileage may vary.</p> +The main advantage of this approach is minimal maintenance of an interface file for when the header file changes in the future. +In more complex projects, an interface file containing numerous <tt>%include</tt> and <tt>#include</tt> statements like this is one of the most common approaches to interface file design due to lower maintenance overhead. +</p> <H3><a name="SWIG_nn48"></a>5.7.3 Why use separate interface files?</H3> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-06-17 06:57:01
|
Revision: 11283 http://swig.svn.sourceforge.net/swig/?rev=11283&view=rev Author: wsfulton Date: 2009-06-17 06:56:55 +0000 (Wed, 17 Jun 2009) Log Message: ----------- quote %include statements Modified Paths: -------------- trunk/Doc/Manual/Arguments.html trunk/Doc/Manual/Ocaml.html trunk/Doc/Manual/Perl5.html trunk/Doc/Manual/Php.html trunk/Doc/Manual/Python.html trunk/Doc/Manual/Ruby.html trunk/Doc/Manual/Tcl.html Modified: trunk/Doc/Manual/Arguments.html =================================================================== --- trunk/Doc/Manual/Arguments.html 2009-06-17 06:50:39 UTC (rev 11282) +++ trunk/Doc/Manual/Arguments.html 2009-06-17 06:56:55 UTC (rev 11283) @@ -351,7 +351,7 @@ <div class="code"><pre> %module example -%include typemaps.i +%include "typemaps.i" ... %{ extern void negate(double *); Modified: trunk/Doc/Manual/Ocaml.html =================================================================== --- trunk/Doc/Manual/Ocaml.html 2009-06-17 06:50:39 UTC (rev 11282) +++ trunk/Doc/Manual/Ocaml.html 2009-06-17 06:56:55 UTC (rev 11283) @@ -634,13 +634,13 @@ #include "example.h" %} -%include stl.i +%include <stl.i> namespace std { %template(StringVector) std::vector < string >; }; -%include example.h +%include "example.h" </pre></td></tr> <tr><td><font size="-1"><i>This example is in Examples/ocaml/stl </i></font></td></tr> Modified: trunk/Doc/Manual/Perl5.html =================================================================== --- trunk/Doc/Manual/Perl5.html 2009-06-17 06:50:39 UTC (rev 11282) +++ trunk/Doc/Manual/Perl5.html 2009-06-17 06:56:55 UTC (rev 11283) @@ -264,7 +264,7 @@ %} // Include code for rebuilding Perl -%include perlmain.i +%include <perlmain.i> </pre></div> <p> @@ -1543,7 +1543,7 @@ <div class="code"> <pre> %module example -%include typemaps.i +%include "typemaps.i" void add(int x, int y, int *REFERENCE); </pre> Modified: trunk/Doc/Manual/Php.html =================================================================== --- trunk/Doc/Manual/Php.html 2009-06-17 06:50:39 UTC (rev 11282) +++ trunk/Doc/Manual/Php.html 2009-06-17 06:56:55 UTC (rev 11283) @@ -479,7 +479,7 @@ <div class="code"><pre> %module example -%include cpointer.i +%include "cpointer.i" %pointer_functions(int,intp) void add( int *in1, int *in2, int *result); @@ -513,7 +513,7 @@ <div class="code"><pre> %module example -%include typemaps.i +%include "typemaps.i" void add( int *INPUT, int *INPUT, int *OUTPUT); @@ -545,7 +545,7 @@ <div class="code"><pre> %module example -%include phppointers.i +%include "phppointers.i" void add( int *REF, int *REF, int *REF); Modified: trunk/Doc/Manual/Python.html =================================================================== --- trunk/Doc/Manual/Python.html 2009-06-17 06:50:39 UTC (rev 11282) +++ trunk/Doc/Manual/Python.html 2009-06-17 06:56:55 UTC (rev 11283) @@ -433,7 +433,7 @@ extern double My_variable; %} -%include embed.i // Include code for a static version of Python +%include "embed.i" // Include code for a static version of Python </pre></div> Modified: trunk/Doc/Manual/Ruby.html =================================================================== --- trunk/Doc/Manual/Ruby.html 2009-06-17 06:50:39 UTC (rev 11282) +++ trunk/Doc/Manual/Ruby.html 2009-06-17 06:56:55 UTC (rev 11283) @@ -2393,7 +2393,7 @@ -%include std_set.i<br> +%include <std_set.i><br> Modified: trunk/Doc/Manual/Tcl.html =================================================================== --- trunk/Doc/Manual/Tcl.html 2009-06-17 06:50:39 UTC (rev 11282) +++ trunk/Doc/Manual/Tcl.html 2009-06-17 06:56:55 UTC (rev 11283) @@ -190,7 +190,7 @@ extern double My_variable; %} -%include tclsh.i // Include code for rebuilding tclsh +%include "tclsh.i" // Include code for rebuilding tclsh </pre></div> @@ -2822,7 +2822,7 @@ return i; } %} -%include tclsh.i +%include "tclsh.i" </pre></div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-06-18 22:36:43
|
Revision: 11285 http://swig.svn.sourceforge.net/swig/?rev=11285&view=rev Author: wsfulton Date: 2009-06-18 22:36:39 +0000 (Thu, 18 Jun 2009) Log Message: ----------- add further clarification about modules Modified Paths: -------------- trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Modules.html trunk/Doc/Manual/SWIG.html Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2009-06-18 08:46:54 UTC (rev 11284) +++ trunk/Doc/Manual/Contents.html 2009-06-18 22:36:39 UTC (rev 11285) @@ -488,6 +488,7 @@ <!-- INDEX --> <div class="sectiontoc"> <ul> +<li><a href="Modules.html#Modules_introduction">Modules Introduction</a> <li><a href="Modules.html#Modules_nn1">Basics</a> <li><a href="Modules.html#Modules_nn2">The SWIG runtime code</a> <li><a href="Modules.html#external_run_time">External access to the runtime</a> Modified: trunk/Doc/Manual/Modules.html =================================================================== --- trunk/Doc/Manual/Modules.html 2009-06-18 08:46:54 UTC (rev 11284) +++ trunk/Doc/Manual/Modules.html 2009-06-18 22:36:39 UTC (rev 11285) @@ -10,6 +10,7 @@ <!-- INDEX --> <div class="sectiontoc"> <ul> +<li><a href="#Modules_introduction">Modules Introduction</a> <li><a href="#Modules_nn1">Basics</a> <li><a href="#Modules_nn2">The SWIG runtime code</a> <li><a href="#external_run_time">External access to the runtime</a> @@ -22,11 +23,48 @@ +<H2><a name="Modules_introduction"></a>15.1 Modules Introduction</H2> + + <p> +Each invocation of SWIG requires a module name to be specified. +The module name is used to name the resulting target language extension module. +Exactly what this means and and what the name is used for +depends on the target language, for example the name can define +a target language namespace or merely be a useful name for naming files or helper classes. +</p> + +<p> +The module name can be supplied in one of two ways. +The first is to specify it with the special <tt>%module</tt> +directive. This directive must appear at the beginning of the interface file. +The general form of this directive is: +</p> + +<div class="code"><pre> +<tt>%module(option1="value1",option2="value2",...) modulename</tt> +</pre></div> + +<p> +where the modulename is mandatory and the options add one or more optional additional features. +Typically no options are specified, for example: +</p> + +<div class="code"><pre> +<tt>%module mymodule</tt> +</pre></div> + +<p> +The second way to specify the module name is with the <tt>-module</tt> command line option, for example <tt>-module mymodule</tt>. +If the module name is supplied on the command line, it overrides the name specified by the +<tt>%module</tt> directive. +</p> + +<p> When first working with SWIG, users commonly start by creating a single module. That is, you might define a single SWIG interface that wraps some set of C/C++ code. You then compile all of the generated -wrapper code into a module and use it. For large applications, however, +wrapper code together and use it. For large applications, however, this approach is problematic---the size of the generated wrapper code can be rather large. Moreover, it is probably easier to manage the target language interface when it is broken up into smaller pieces. @@ -34,10 +72,11 @@ <p> This chapter describes the problem of using SWIG in programs -where you want to create a collection of modules. +where you want to create a collection of modules. +Each module in the collection is created via separate invocations of SWIG. </p> -<H2><a name="Modules_nn1"></a>15.1 Basics</H2> +<H2><a name="Modules_nn1"></a>15.2 Basics</H2> <p> @@ -135,7 +174,7 @@ issue, read on. </p> -<H2><a name="Modules_nn2"></a>15.2 The SWIG runtime code</H2> +<H2><a name="Modules_nn2"></a>15.3 The SWIG runtime code</H2> <p> @@ -201,7 +240,7 @@ is empty. Only modules compiled with the same pair will share type information. </p> -<H2><a name="external_run_time"></a>15.3 External access to the runtime</H2> +<H2><a name="external_run_time"></a>15.4 External access to the runtime</H2> <p>As described in <a href="Typemaps.html#runtime_type_checker">The run-time type checker</a>, @@ -238,7 +277,7 @@ access. </p> -<H2><a name="Modules_nn4"></a>15.4 A word of caution about static libraries</H2> +<H2><a name="Modules_nn4"></a>15.5 A word of caution about static libraries</H2> <p> @@ -249,7 +288,7 @@ behavior. When working with dynamically loadable modules, you should try to work exclusively with shared libraries. </p> -<H2><a name="Modules_nn5"></a>15.5 References</H2> +<H2><a name="Modules_nn5"></a>15.6 References</H2> <p> @@ -257,7 +296,7 @@ an outside reference. John Levine's "Linkers and Loaders" is highly recommended. </p> -<H2><a name="Modules_nn6"></a>15.6 Reducing the wrapper file size</H2> +<H2><a name="Modules_nn6"></a>15.7 Reducing the wrapper file size</H2> <p> Modified: trunk/Doc/Manual/SWIG.html =================================================================== --- trunk/Doc/Manual/SWIG.html 2009-06-18 08:46:54 UTC (rev 11284) +++ trunk/Doc/Manual/SWIG.html 2009-06-18 22:36:39 UTC (rev 11285) @@ -174,15 +174,8 @@ ... </pre></div> <p> -The name of the module is supplied using the special <tt>%module</tt> -directive (or the <tt>-module</tt> command line option). This -directive must appear at the beginning of the file and is used to name -the resulting target language extension module. Exactly what this results -in depends on the target language, eg the module name can define -a target language namespace or merely be a useful name for naming files or helper classes. -If the module name is supplied on the -command line, it overrides the name specified with the -<tt>%module</tt> directive. +The module name is supplied using the special <tt>%module</tt> +directive. Modules are described further in the <a href="Modules.html#Modules_introduction">Modules Introduction</a> section. </p> <p> @@ -2889,12 +2882,12 @@ <li>Make sure all necessary `<tt>typedef</tt>' declarations and type-information is available in the interface file. -In particular, ensure that the type information is specified in the correct order as required by a C compiler. -In particular, define a type before it is used! A C compiler will tell you -if the full type information is not available when it is needed, whereas +In particular, ensure that the type information is specified in the correct order as required by a C/C++ compiler. +Most importantly, define a type before it is used! A C compiler will tell you +if the full type information is not available if it is needed, whereas SWIG will usually not warn or error out as it is designed to work without full type information. However, if type information is not specified -correctly, the wrappers can be sub-optimal. +correctly, the wrappers can be sub-optimal and even result in uncompileable C/C++ code. <li>If your program has a main() function, you may need to rename it (read on). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-07-29 21:01:40
|
Revision: 11472 http://swig.svn.sourceforge.net/swig/?rev=11472&view=rev Author: wsfulton Date: 2009-07-29 21:01:28 +0000 (Wed, 29 Jul 2009) Log Message: ----------- section numbering update Modified Paths: -------------- trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Tcl.html Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2009-07-29 20:52:29 UTC (rev 11471) +++ trunk/Doc/Manual/Contents.html 2009-07-29 21:01:28 UTC (rev 11472) @@ -1120,7 +1120,7 @@ <li><a href="Perl5.html#Perl5_nn24">Modules and packages</a> </ul> <li><a href="Perl5.html#Perl5_nn25">Input and output parameters</a> -<li><a href="Perl5.html#Perl5_nn26">Exception handling </a> +<li><a href="Perl5.html#Perl5_nn26">Exception handling</a> <li><a href="Perl5.html#Perl5_nn27">Remapping datatypes with typemaps</a> <ul> <li><a href="Perl5.html#Perl5_nn28">A simple typemap example</a> @@ -1130,8 +1130,8 @@ </ul> <li><a href="Perl5.html#Perl5_nn32">Typemap Examples</a> <ul> -<li><a href="Perl5.html#Perl5_nn33">Converting a Perl5 array to a char ** </a> -<li><a href="Perl5.html#Perl5_nn34">Return values </a> +<li><a href="Perl5.html#Perl5_nn33">Converting a Perl5 array to a char **</a> +<li><a href="Perl5.html#Perl5_nn34">Return values</a> <li><a href="Perl5.html#Perl5_nn35">Returning values from arguments</a> <li><a href="Perl5.html#Perl5_nn36">Accessing array structure members</a> <li><a href="Perl5.html#Perl5_nn37">Turning Perl references into C pointers</a> @@ -1178,7 +1178,17 @@ </ul> <li><a href="Php.html#Php_nn2_7">PHP Pragmas, Startup and Shutdown code</a> </ul> +<li><a href="Php.html#Php_nn3">Cross language polymorphism</a> +<ul> +<li><a href="Php.html#Php_nn3_1">Enabling directors</a> +<li><a href="Php.html#Php_nn3_2">Director classes</a> +<li><a href="Php.html#Php_nn3_3">Ownership and object destruction</a> +<li><a href="Php.html#Php_nn3_4">Exception unrolling</a> +<li><a href="Php.html#Php_nn3_5">Overhead and code bloat</a> +<li><a href="Php.html#Php_nn3_6">Typemaps</a> +<li><a href="Php.html#Php_nn3_7">Miscellaneous</a> </ul> +</ul> </div> <!-- INDEX --> Modified: trunk/Doc/Manual/Tcl.html =================================================================== --- trunk/Doc/Manual/Tcl.html 2009-07-29 20:52:29 UTC (rev 11471) +++ trunk/Doc/Manual/Tcl.html 2009-07-29 21:01:28 UTC (rev 11472) @@ -3412,6 +3412,7 @@ <H2><a name="Tcl_nn46"></a>33.10 Tcl/Tk Stubs</H2> + <p> For background information about the Tcl Stubs feature, see <a href="http://www.tcl.tk/doc/howto/stubs.html">http://www.tcl.tk/doc/howto/stubs.html</a>. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-08-18 14:02:29
|
Revision: 11634 http://swig.svn.sourceforge.net/swig/?rev=11634&view=rev Author: wsfulton Date: 2009-08-18 14:02:22 +0000 (Tue, 18 Aug 2009) Log Message: ----------- Clear up confusion that typemaps can contain C/C++ as well as target language code Modified Paths: -------------- trunk/Doc/Manual/Sections.html trunk/Doc/Manual/Typemaps.html Modified: trunk/Doc/Manual/Sections.html =================================================================== --- trunk/Doc/Manual/Sections.html 2009-08-18 13:47:27 UTC (rev 11633) +++ trunk/Doc/Manual/Sections.html 2009-08-18 14:02:22 UTC (rev 11634) @@ -6,7 +6,7 @@ <body bgcolor="#ffffff"> <H1><a name="Sections"></a>SWIG-1.3 Development Documentation</H1> -Last update : SWIG-1.3.40 (in progress) +Last update : SWIG-1.3.40 (18 August 2009) <H2>Sections</H2> Modified: trunk/Doc/Manual/Typemaps.html =================================================================== --- trunk/Doc/Manual/Typemaps.html 2009-08-18 13:47:27 UTC (rev 11633) +++ trunk/Doc/Manual/Typemaps.html 2009-08-18 14:02:22 UTC (rev 11634) @@ -230,14 +230,17 @@ However, there is really not much to it. The first typemap (the "in" typemap) is used to convert a value from the target language to C. The second typemap (the "out" typemap) is used to convert in the other -direction. The content of each typemap is a small fragment of C code -that is inserted directly into the SWIG generated wrapper functions. Within -this code, a number of special variables prefixed with a $ are expanded. These are -really just placeholders for C variables that are generated in the course +direction. The content of each typemap is a small fragment of code +that is inserted directly into the SWIG generated wrapper functions. +The code is usually C or C++ code which will be generated into the C/C++ wrapper functions. +Note that this isn't always the case as some target language modules allow target language +code within the typemaps which gets generated into target language specific files. +Within this code, a number of special variables prefixed with a $ are expanded. These are +really just placeholders for C/C++ variables that are generated in the course of creating the wrapper function. In this case, <tt>$input</tt> refers to an -input object that needs to be converted to C and <tt>$result</tt> +input object that needs to be converted to C/C++ and <tt>$result</tt> refers to an object that is going to be returned by a wrapper -function. <tt>$1</tt> refers to a C variable that has the same type as +function. <tt>$1</tt> refers to a C/C++ variable that has the same type as specified in the typemap declaration (an <tt>int</tt> in this example). </p> @@ -4060,6 +4063,7 @@ for how to define typemaps of your own. Some of the language modules support additional typemaps and further information is available in the individual chapters for each target language. +There you may also find more hands-on practical examples. </p> </body> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-08-18 14:08:59
|
Revision: 11636 http://swig.svn.sourceforge.net/swig/?rev=11636&view=rev Author: wsfulton Date: 2009-08-18 14:08:50 +0000 (Tue, 18 Aug 2009) Log Message: ----------- Remove 'under construction' notes Modified Paths: -------------- trunk/Doc/Manual/Arguments.html trunk/Doc/Manual/Php.html trunk/Doc/Manual/Typemaps.html Modified: trunk/Doc/Manual/Arguments.html =================================================================== --- trunk/Doc/Manual/Arguments.html 2009-08-18 14:04:06 UTC (rev 11635) +++ trunk/Doc/Manual/Arguments.html 2009-08-18 14:08:50 UTC (rev 11636) @@ -30,8 +30,6 @@ -<b>Disclaimer: This chapter is under construction.</b> - <p> In Chapter 3, SWIG's treatment of basic datatypes and pointers was described. In particular, primitive types such as <tt>int</tt> and Modified: trunk/Doc/Manual/Php.html =================================================================== --- trunk/Doc/Manual/Php.html 2009-08-18 14:04:06 UTC (rev 11635) +++ trunk/Doc/Manual/Php.html 2009-08-18 14:08:50 UTC (rev 11636) @@ -49,10 +49,6 @@ <p> -<b>Caution: This chapter (and module!) is still under construction</b> -</p> - -<p> SWIG supports generating wrappers for PHP5. Support for PHP4 has been removed as of SWIG 1.3.37. The PHP developers are no longer making new PHP4 releases, and won't even be patching critical security issues after 2008-08-08, so it Modified: trunk/Doc/Manual/Typemaps.html =================================================================== --- trunk/Doc/Manual/Typemaps.html 2009-08-18 14:04:06 UTC (rev 11635) +++ trunk/Doc/Manual/Typemaps.html 2009-08-18 14:08:50 UTC (rev 11636) @@ -88,10 +88,6 @@ -<p> -<b>Disclaimer: This chapter is under construction!</b> -</p> - <H2><a name="Typemaps_nn2"></a>10.1 Introduction</H2> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-08-29 10:41:17
|
Revision: 11673 http://swig.svn.sourceforge.net/swig/?rev=11673&view=rev Author: wsfulton Date: 2009-08-29 10:41:06 +0000 (Sat, 29 Aug 2009) Log Message: ----------- Add information about the SWIG test-suite Modified Paths: -------------- trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Extending.html Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2009-08-29 10:09:01 UTC (rev 11672) +++ trunk/Doc/Manual/Contents.html 2009-08-29 10:41:06 UTC (rev 11673) @@ -1581,7 +1581,7 @@ <li><a href="Extending.html#Extending_nn31">Writing a Language Module</a> <ul> <li><a href="Extending.html#Extending_nn32">Execution model</a> -<li><a href="Extending.html#Extending_nn33">Starting out</a> +<li><a href="Extending.html#Extending_starting_out">Starting out</a> <li><a href="Extending.html#Extending_nn34">Command line options</a> <li><a href="Extending.html#Extending_nn35">Configuration and preprocessing</a> <li><a href="Extending.html#Extending_nn36">Entry point to code generation</a> @@ -1590,7 +1590,11 @@ <li><a href="Extending.html#Extending_nn39">Configuration files</a> <li><a href="Extending.html#Extending_nn40">Runtime support</a> <li><a href="Extending.html#Extending_nn41">Standard library files</a> -<li><a href="Extending.html#Extending_nn42">Examples and test cases</a> +<li><a href="Extending.html#Extending_nn42">User examples</a> +<li><a href="Extending.html#Extending_test_suite">Test driven development and the test-suite</a> +<ul> +<li><a href="Extending.html#Extending_running_test_suite">Running the test-suite</a> +</ul> <li><a href="Extending.html#Extending_nn43">Documentation</a> <li><a href="Extending.html#Extending_prerequisites">Prerequisites for adding a new language module to the SWIG distribution</a> <li><a href="Extending.html#Extending_coding_style_guidelines">Coding style guidelines</a> Modified: trunk/Doc/Manual/Extending.html =================================================================== --- trunk/Doc/Manual/Extending.html 2009-08-29 10:09:01 UTC (rev 11672) +++ trunk/Doc/Manual/Extending.html 2009-08-29 10:41:06 UTC (rev 11673) @@ -48,7 +48,7 @@ <li><a href="#Extending_nn31">Writing a Language Module</a> <ul> <li><a href="#Extending_nn32">Execution model</a> -<li><a href="#Extending_nn33">Starting out</a> +<li><a href="#Extending_starting_out">Starting out</a> <li><a href="#Extending_nn34">Command line options</a> <li><a href="#Extending_nn35">Configuration and preprocessing</a> <li><a href="#Extending_nn36">Entry point to code generation</a> @@ -57,7 +57,11 @@ <li><a href="#Extending_nn39">Configuration files</a> <li><a href="#Extending_nn40">Runtime support</a> <li><a href="#Extending_nn41">Standard library files</a> -<li><a href="#Extending_nn42">Examples and test cases</a> +<li><a href="#Extending_nn42">User examples</a> +<li><a href="#Extending_test_suite">Test driven development and the test-suite</a> +<ul> +<li><a href="#Extending_running_test_suite">Running the test-suite</a> +</ul> <li><a href="#Extending_nn43">Documentation</a> <li><a href="#Extending_prerequisites">Prerequisites for adding a new language module to the SWIG distribution</a> <li><a href="#Extending_coding_style_guidelines">Coding style guidelines</a> @@ -2471,7 +2475,7 @@ different methods of the <tt>Language</tt> that must be defined by your module. </p> -<H3><a name="Extending_nn33"></a>35.10.2 Starting out</H3> +<H3><a name="Extending_starting_out"></a>35.10.2 Starting out</H3> <p> @@ -3053,7 +3057,7 @@ <!-- please report bugs in this section to ttn --> <p> -At the time of this writing, SWIG supports nearly a dozen languages, +At the time of this writing, SWIG supports nearly twenty languages, which means that for continued sanity in maintaining the configuration files, the language modules need to follow some conventions. These are outlined here along with the admission that, yes it is ok to violate @@ -3225,7 +3229,7 @@ Please copy these and modify for any new language. </p> -<H3><a name="Extending_nn42"></a>35.10.11 Examples and test cases</H3> +<H3><a name="Extending_nn42"></a>35.10.11 User examples</H3> <p> @@ -3254,10 +3258,229 @@ files</a>. </p> -<H3><a name="Extending_nn43"></a>35.10.12 Documentation</H3> +<H3><a name="Extending_test_suite"></a>35.10.12 Test driven development and the test-suite</H3> <p> +A test driven development approach is central to the improvement and development of SWIG. +Most modifications to SWIG are accompanied by additional regression tests and checking all +tests to ensure that no regressions have been introduced. +</p> + +<p> +The regression testing is carried out by the SWIG <i>test-suite</i>. +The test-suite consists of numerous testcase interface files in the <tt>Examples/test-suite</tt> directory +as well as target language specific runtime tests in the <tt>Examples/test-suite/[lang]</tt> directory. +When a testcase is run, it will execute the following steps for each testcase: +</p> + +<ol> +<li>Execute SWIG passing it the testcase interface file.</li> +<li>Compile the resulting generated C/C++ code with either the C or C++ compiler into object files.</li> +<li>Link the object files into a dynamic library (dll/shared object).</li> +<li>Compile any generated and any runtime test target language code with the target language compiler, if the target language supports compilation. This step thus does not apply to the interpreted languages.</li> +<li>Execute a runtime test if one exists.</li> +</ol> + +<p> +For example, the <i>ret_by_value</i> testcase consists of two components. +The first component is the <tt>Examples/test-suite/ret_by_value.i</tt> interface file. +The name of the SWIG module <b>must</b> always be the name of the testcase, so the <tt>ret_by_value.i</tt> interface file thus begins with: +</p> + +<div class="code"> +<pre> +%module ret_by_value +</pre> +</div> + +<p> +The testcase code will then follow the module declaration, +usually within a <tt>%inline %{ ... %}</tt> section for the majority of the tests. +</p> + +<p> +The second component is the optional runtime tests. +Any runtime tests are named using the following convention: <tt>[testcase]_runme.[ext]</tt>, +where <tt>[testcase]</tt> is the testcase name and <tt>[ext]</tt> is the normal extension for the target language file. +In this case, the Java and Python target languages implement a runtime test, so their files are respectively, +<tt>Examples/test-suite/java/ret_by_value_runme.java</tt> and +<tt>Examples/test-suite/python/ret_by_value_runme.py</tt>. +</p> + +<p> +The goal of the test-suite is to test as much as possible in a <b>silent</b> manner. +This way any SWIG or compiler errors or warnings are easily visible. +Should there be any warnings, changes must be made to either fix them (preferably) or suppress them. +Compilation or runtime errors result in a testcase failure and will be immediately visible. +It is therefore essential that the runtime tests are written in a manner that displays nothing to stdout/stderr on success +but error/exception out with an error message on stderr on failure. +</p> + +<H4><a name="Extending_running_test_suite"></a>35.10.12.1 Running the test-suite</H4> + + +<p> +In order for the test-suite to work for a particular target language, the language must be correctly detected +and configured during the configure stage so that the correct Makefiles are generated. +Most development occurs on Linux, so usually it is a matter of installing the development packages for the target language +and simply configuring as outlined <a href="#Extending_starting_out">earlier</a>. +</p> + +<p> +If when running the test-suite commands that follow, you get a message that the test was skipped, it indicates that the +configure stage is missing information in order to compile and run everything for that language. +</p> + +<p> +The test-suite can be run in a number of ways. +The first group of commands are for running multiple testcases in one run and should be executed in the top level directory. +To run the entire test-suite (can take a long time): +</p> + +<div class="shell"><pre> +make -k check-test-suite +</pre></div> + +<p> +To run the test-suite just for target language [lang], replace [lang] with one of csharp, java, perl5, python, ruby, tcl etc: +</p> + +<div class="shell"><pre> +make check-[lang]-test-suite +</pre></div> + +<p> +Note that if a runtime test is available, a message "(with run test)" is displayed when run. For example: +</p> + +<div class="shell"><pre> +$ make check-python-test-suite +checking python test-suite +checking testcase argcargvtest (with run test) under python +checking testcase python_autodoc under python +checking testcase python_append (with run test) under python +checking testcase callback (with run test) under python +</pre></div> + +<p> +The files generated on a previous run can be deleted using the clean targets, either the whole test-suite or for a particular language: +</p> + +<div class="shell"><pre> +make clean-test-suite +make clean-[lang]-test-suite +</pre></div> + +<p> +The test-suite can be run in a <i>partialcheck</i> mode where just SWIG is executed, that is, the compile, +link and running of the testcases is not performed. +Note that the partialcheck does not require the target language to be correctly configured and detected and unlike the other test-suite make targets, is never skipped. Once again, either all the languages can be executed or just a chosen language: +</p> + +<div class="shell"><pre> +make partialcheck-test-suite +make partialcheck-[lang]-test-suite +</pre></div> + +<p> +If your computer has more than one CPU, you are strongly advised to use parallel make to speed up the execution speed. +This can be done with any of the make targets that execute more than one testcase. +For example, a dual core processor can efficiently use 2 parallel jobs: +</p> + +<div class="shell"><pre> +make -j2 check-test-suite +make -j2 check-python-test-suite +make -j2 partialcheck-java-test-suite +</pre></div> + +<p> +The second group of commands are for running individual testcases and should be executed in the appropriate +target language directory, <tt>Examples/test-suite/[lang]</tt>. +Testcases can contain either C or C++ code and when one is written, a decision must be made as to which of these input +languages is to be used. +Replace <tt>[testcase]</tt> in the commands below with the name of the testcase. +</p> + +<p> +For a C language testcase, add the testcase under the C_TEST_CASES list in <tt>Examples/test-suite/common.mk</tt> and +execute individually as: +</p> +<div class="shell"><pre> +make -s [testcase].ctest +</pre></div> + +<p> +For a C++ language testcase, add the testcase under the CPP_TEST_CASES list in <tt>Examples/test-suite/common.mk</tt> and +execute individually as: +</p> +<div class="shell"><pre> +make -s [testcase].cpptest +</pre></div> + +<p> +A third category of tests are C++ language testcases testing multiple modules (the %import directive). +These require more than one shared library (dll/shared object) to be built and so are separated out from the normal C++ testcases. +Add the testcase under the MULTI_CPP_TEST_CASES list in <tt>Examples/test-suite/common.mk</tt> and +execute individually as: +</p> +<div class="shell"><pre> +make -s [testcase].multicpptest +</pre></div> + +<p> +To delete the generated files, execute: +</p> +<div class="shell"><pre> +make -s [testcase].clean +</pre></div> + +<p> +If you would like to see the exact commands being executed, drop the -s option: +</p> +<div class="shell"><pre> +make [testcase].ctest +make [testcase].cpptest +make [testcase].multicpptest +</pre></div> + +<p> +Some real examples of each: +</p> +<div class="shell"><pre> +make -s ret_by_value.clean +make -s ret_by_value.ctest +make -s bools.cpptest +make -s imports.multicpptest +</pre></div> + +<p> +Advanced usage of the test-suite facilitates running tools on some of the five stages. +The make variables <tt>SWIGTOOL</tt> and <tt>RUNTOOL</tt> are used to specify a tool to respectively, invoke SWIG +and the execution of the runtime test. +You are advised to view the <tt>Examples/test-suite/common.mk</tt> file for details but for a short summary, +the classic usage is to use <a href="http://valgrind.org/">Valgrind</a> for memory checking. +For example, checking for memory leaks when running the runtime test in the target language interpreter: +</p> + +<div class="shell"><pre> +make ret_by_value.ctest RUNTOOL="valgrind --leak-check=full" +</pre></div> + +<p> +This will probably make more sense if you look at the output of the above as it will show the exact commands being executed. +SWIG can be analyzed for bad memory accesses using: +</p> + +<div class="shell"><pre> +make ret_by_value.ctest SWIGTOOL="valgrind --tool=memcheck --trace-children=yes" +</pre></div> + +<H3><a name="Extending_nn43"></a>35.10.13 Documentation</H3> + + +<p> Don't forget to write end-user documentation for your language module. Currently, each language module has a dedicated chapter You shouldn't rehash things that are already covered in sufficient @@ -3286,7 +3509,7 @@ if available. </ul> -<H3><a name="Extending_prerequisites"></a>35.10.13 Prerequisites for adding a new language module to the SWIG distribution</H3> +<H3><a name="Extending_prerequisites"></a>35.10.14 Prerequisites for adding a new language module to the SWIG distribution</H3> <p> @@ -3343,7 +3566,7 @@ the existing tests. </p> -<H3><a name="Extending_coding_style_guidelines"></a>35.10.14 Coding style guidelines</H3> +<H3><a name="Extending_coding_style_guidelines"></a>35.10.15 Coding style guidelines</H3> <p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-10-20 22:18:50
|
Revision: 11708 http://swig.svn.sourceforge.net/swig/?rev=11708&view=rev Author: wsfulton Date: 2009-10-20 22:18:43 +0000 (Tue, 20 Oct 2009) Log Message: ----------- Add reference to the Doc/Devel documentation. Add debugging options Modified Paths: -------------- trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Extending.html Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2009-10-20 21:24:42 UTC (rev 11707) +++ trunk/Doc/Manual/Contents.html 2009-10-20 22:18:43 UTC (rev 11708) @@ -1599,11 +1599,9 @@ <li><a href="Extending.html#Extending_prerequisites">Prerequisites for adding a new language module to the SWIG distribution</a> <li><a href="Extending.html#Extending_coding_style_guidelines">Coding style guidelines</a> </ul> -<li><a href="Extending.html#Extending_nn44">Typemaps</a> -<ul> -<li><a href="Extending.html#Extending_nn45">Proxy classes</a> -</ul> +<li><a href="Extending.html#Extending_debugging_options">Debugging Options</a> <li><a href="Extending.html#Extending_nn46">Guide to parse tree nodes</a> +<li><a href="Extending.html#Extending_further_info">Further Development Information</a> </ul> </div> <!-- INDEX --> Modified: trunk/Doc/Manual/Extending.html =================================================================== --- trunk/Doc/Manual/Extending.html 2009-10-20 21:24:42 UTC (rev 11707) +++ trunk/Doc/Manual/Extending.html 2009-10-20 22:18:43 UTC (rev 11708) @@ -66,11 +66,9 @@ <li><a href="#Extending_prerequisites">Prerequisites for adding a new language module to the SWIG distribution</a> <li><a href="#Extending_coding_style_guidelines">Coding style guidelines</a> </ul> -<li><a href="#Extending_nn44">Typemaps</a> -<ul> -<li><a href="#Extending_nn45">Proxy classes</a> -</ul> +<li><a href="#Extending_debugging_options">Debugging Options</a> <li><a href="#Extending_nn46">Guide to parse tree nodes</a> +<li><a href="#Extending_further_info">Further Development Information</a> </ul> </div> <!-- INDEX --> @@ -3590,12 +3588,27 @@ should be avoided as unlike the SWIG developers, users will never have consistent tab settings. </p> -<H2><a name="Extending_nn44"></a>35.11 Typemaps</H2> +<H2><a name="Extending_debugging_options"></a>35.11 Debugging Options</H2> -<H3><a name="Extending_nn45"></a>35.11.1 Proxy classes</H3> +<p> +There are various command line options which can aid debugging a SWIG interface as well as debugging the development of a language module. These are as follows: +</p> +<div class="shell"><pre> +-debug-classes - Display information about the classes found in the interface +-debug-module <n> - Display module parse tree at stages 1-4, <n> is a csv list of stages +-debug-tags - Display information about the tags found in the interface +-debug-template - Display information for debugging templates +-debug-top <n> - Display entire parse tree at stages 1-4, <n> is a csv list of stages +-debug-typedef - Display information about the types and typedefs in the interface +-debug-typemap - Display information for debugging typemaps +</pre></div> +<p> +The complete list of command line options for SWIG are available by running <tt>swig -help</tt>. +</p> + <H2><a name="Extending_nn46"></a>35.12 Guide to parse tree nodes</H2> @@ -4004,8 +4017,15 @@ </pre> </div> +<H2><a name="Extending_further_info"></a>35.13 Further Development Information</H2> +<p> +There is further documentation available on the internals of SWIG, API documentation and debugging information. +This is shipped with SWIG in the <tt>Doc/Devel</tt> directory. +</P> + + </body> </html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-12-20 01:20:56
|
Revision: 11792 http://swig.svn.sourceforge.net/swig/?rev=11792&view=rev Author: wsfulton Date: 2009-12-20 01:20:50 +0000 (Sun, 20 Dec 2009) Log Message: ----------- Section number renumbering Modified Paths: -------------- trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Python.html Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2009-12-20 01:19:48 UTC (rev 11791) +++ trunk/Doc/Manual/Contents.html 2009-12-20 01:20:50 UTC (rev 11792) @@ -346,10 +346,11 @@ <li><a href="Typemaps.html#Typemaps_pattern_matching">Pattern matching rules</a> <ul> <li><a href="Typemaps.html#Typemaps_nn17">Basic matching rules</a> -<li><a href="Typemaps.html#Typemaps_nn18">Typedef reductions</a> +<li><a href="Typemaps.html#Typemaps_typedef_reductions">Typedef reductions</a> <li><a href="Typemaps.html#Typemaps_nn19">Default typemaps</a> <li><a href="Typemaps.html#Typemaps_mixed_default">Mixed default typemaps</a> <li><a href="Typemaps.html#Typemaps_nn20">Multi-arguments typemaps</a> +<li><a href="Typemaps.html#Typemaps_debugging_search">Debugging typemap pattern matching</a> </ul> <li><a href="Typemaps.html#Typemaps_nn21">Code generation rules</a> <ul> @@ -383,7 +384,7 @@ <li><a href="Typemaps.html#Typemaps_nn40">Typemaps for arrays</a> <li><a href="Typemaps.html#Typemaps_nn41">Implementing constraints with typemaps</a> </ul> -<li><a href="Typemaps.html#Typemaps_nn43">Typemaps for multiple languages</a> +<li><a href="Typemaps.html#Typemaps_nn43">Typemaps for multiple target languages</a> <li><a href="Typemaps.html#Typemaps_optimal">Optimal code generation when returning by value</a> <li><a href="Typemaps.html#Typemaps_multi_argument_typemaps">Multi-argument typemaps</a> <li><a href="Typemaps.html#runtime_type_checker">The run-time type checker</a> @@ -1280,9 +1281,6 @@ <li><a href="Python.html#Python_nn47">Simple pointers</a> <li><a href="Python.html#Python_nn48">Unbounded C Arrays</a> <li><a href="Python.html#Python_nn49">String handling</a> -<li><a href="Python.html#Python_nn50">Arrays</a> -<li><a href="Python.html#Python_nn51">String arrays</a> -<li><a href="Python.html#Python_nn52">STL wrappers</a> </ul> <li><a href="Python.html#Python_nn53">Typemaps</a> <ul> Modified: trunk/Doc/Manual/Python.html =================================================================== --- trunk/Doc/Manual/Python.html 2009-12-20 01:19:48 UTC (rev 11791) +++ trunk/Doc/Manual/Python.html 2009-12-20 01:20:50 UTC (rev 11792) @@ -69,9 +69,6 @@ <li><a href="#Python_nn47">Simple pointers</a> <li><a href="#Python_nn48">Unbounded C Arrays</a> <li><a href="#Python_nn49">String handling</a> -<li><a href="#Python_nn50">Arrays</a> -<li><a href="#Python_nn51">String arrays</a> -<li><a href="#Python_nn52">STL wrappers</a> </ul> <li><a href="#Python_nn53">Typemaps</a> <ul> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2009-12-22 23:08:35
|
Revision: 11795 http://swig.svn.sourceforge.net/swig/?rev=11795&view=rev Author: wsfulton Date: 2009-12-22 23:08:28 +0000 (Tue, 22 Dec 2009) Log Message: ----------- Add link for const sections Modified Paths: -------------- trunk/Doc/Manual/SWIG.html trunk/Doc/Manual/SWIGPlus.html Modified: trunk/Doc/Manual/SWIG.html =================================================================== --- trunk/Doc/Manual/SWIG.html 2009-12-22 19:21:55 UTC (rev 11794) +++ trunk/Doc/Manual/SWIG.html 2009-12-22 23:08:28 UTC (rev 11795) @@ -798,6 +798,12 @@ </p> <p> +Please note that for const parameters or return types used in a function, SWIG pretty much ignores +the fact that these are const, see the section on <a href="SWIGPlus.html#SWIGPlus_const">const-correctness</a> +for more information. +</p> + +<p> <b>Compatibility Note:</b> One reason for changing SWIG to handle <tt>const</tt> declarations as read-only variables is that there are many situations where the value of a <tt>const</tt> variable might Modified: trunk/Doc/Manual/SWIGPlus.html =================================================================== --- trunk/Doc/Manual/SWIGPlus.html 2009-12-22 19:21:55 UTC (rev 11794) +++ trunk/Doc/Manual/SWIGPlus.html 2009-12-22 23:08:28 UTC (rev 11795) @@ -56,7 +56,7 @@ <li><a href="#SWIGPlus_nn34">Smart pointers and operator->()</a> <li><a href="#SWIGPlus_nn35">Using declarations and inheritance</a> <li><a href="#SWIGPlus_nested_classes">Nested classes</a> -<li><a href="#SWIGPlus_nn37">A brief rant about const-correctness</a> +<li><a href="#SWIGPlus_const">A brief rant about const-correctness</a> <li><a href="#SWIGPlus_nn42">Where to go for more information</a> </ul> </div> @@ -4835,7 +4835,7 @@ </p> -<H2><a name="SWIGPlus_nn37"></a>6.27 A brief rant about const-correctness</H2> +<H2><a name="SWIGPlus_const"></a>6.27 A brief rant about const-correctness</H2> <p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-01-09 00:56:08
|
Revision: 11810 http://swig.svn.sourceforge.net/swig/?rev=11810&view=rev Author: wsfulton Date: 2010-01-09 00:56:02 +0000 (Sat, 09 Jan 2010) Log Message: ----------- Update warnings to newer slightly modified warning format Modified Paths: -------------- trunk/Doc/Manual/CSharp.html trunk/Doc/Manual/Java.html trunk/Doc/Manual/Lua.html trunk/Doc/Manual/Modules.html trunk/Doc/Manual/Python.html trunk/Doc/Manual/Ruby.html trunk/Doc/Manual/SWIGPlus.html trunk/Doc/Manual/Tcl.html trunk/Doc/Manual/Typemaps.html trunk/Doc/Manual/Warnings.html Modified: trunk/Doc/Manual/CSharp.html =================================================================== --- trunk/Doc/Manual/CSharp.html 2010-01-09 00:42:01 UTC (rev 11809) +++ trunk/Doc/Manual/CSharp.html 2010-01-09 00:56:02 UTC (rev 11810) @@ -987,7 +987,7 @@ <div class="code"> <pre> -example.i:21: Warning(845): Unmanaged code contains a call to a SWIG_CSharpSetPendingException +example.i:21: Warning 845: Unmanaged code contains a call to a SWIG_CSharpSetPendingException method and C# code does not handle pending exceptions via the canthrow attribute. </pre> </div> Modified: trunk/Doc/Manual/Java.html =================================================================== --- trunk/Doc/Manual/Java.html 2010-01-09 00:42:01 UTC (rev 11809) +++ trunk/Doc/Manual/Java.html 2010-01-09 00:56:02 UTC (rev 11810) @@ -1772,7 +1772,7 @@ <div class="code"> <pre> -example.i:12: Warning(515): Overloaded method spam(unsigned short) ignored. +example.i:12: Warning 515: Overloaded method spam(unsigned short) ignored. Method spam(int) at example.i:11 used. </pre> </div> Modified: trunk/Doc/Manual/Lua.html =================================================================== --- trunk/Doc/Manual/Lua.html 2010-01-09 00:42:01 UTC (rev 11809) +++ trunk/Doc/Manual/Lua.html 2010-01-09 00:56:02 UTC (rev 11810) @@ -684,7 +684,7 @@ If declarations such as these appear, you will get a warning message like this: </p> <div class="shell"><pre> -example.i:12: Warning(509): Overloaded spam(short) is shadowed by spam(int) +example.i:12: Warning 509: Overloaded spam(short) is shadowed by spam(int) at example.i:11. </pre></div> <p> Modified: trunk/Doc/Manual/Modules.html =================================================================== --- trunk/Doc/Manual/Modules.html 2010-01-09 00:42:01 UTC (rev 11809) +++ trunk/Doc/Manual/Modules.html 2010-01-09 00:56:02 UTC (rev 11810) @@ -138,7 +138,7 @@ </p> <div class="shell"> <pre> -derived_module.i:8: Warning(401): Base class 'base' ignored - unknown module name for base. Either import +derived_module.i:8: Warning 401: Base class 'base' ignored - unknown module name for base. Either import the appropriate module interface file or specify the name of the module in the %import directive. </pre></div> Modified: trunk/Doc/Manual/Python.html =================================================================== --- trunk/Doc/Manual/Python.html 2010-01-09 00:42:01 UTC (rev 11809) +++ trunk/Doc/Manual/Python.html 2010-01-09 00:56:02 UTC (rev 11810) @@ -1710,7 +1710,7 @@ <div class="shell"> <pre> -example.i:12: Warning(509): Overloaded spam(short) is shadowed by spam(int) +example.i:12: Warning 509: Overloaded spam(short) is shadowed by spam(int) at example.i:11. </pre> </div> Modified: trunk/Doc/Manual/Ruby.html =================================================================== --- trunk/Doc/Manual/Ruby.html 2010-01-09 00:42:01 UTC (rev 11809) +++ trunk/Doc/Manual/Ruby.html 2010-01-09 00:56:02 UTC (rev 11810) @@ -1559,7 +1559,7 @@ <div class="code shell"> -<pre>example.i:5: Warning(802): Warning for Derived: Base Base2 ignored.<br>Multiple inheritance is not supported in Ruby.<br></pre> +<pre>example.i:5: Warning 802: Warning for Derived: Base Base2 ignored.<br>Multiple inheritance is not supported in Ruby.<br></pre> @@ -1810,7 +1810,7 @@ <div class="code shell"> -<pre>example.i:12: Warning(509): Overloaded spam(short) is shadowed by spam(int)<br>at example.i:11.<br> </pre> +<pre>example.i:12: Warning 509: Overloaded spam(short) is shadowed by spam(int)<br>at example.i:11.<br> </pre> Modified: trunk/Doc/Manual/SWIGPlus.html =================================================================== --- trunk/Doc/Manual/SWIGPlus.html 2010-01-09 00:42:01 UTC (rev 11809) +++ trunk/Doc/Manual/SWIGPlus.html 2010-01-09 00:56:02 UTC (rev 11810) @@ -1616,7 +1616,7 @@ <div class="shell"> <pre> -example.i:18: Warning(401): Nothing known about base class 'Foo'. Ignored. +example.i:18: Warning 401: Nothing known about base class 'Foo'. Ignored. </pre> </div> @@ -2031,7 +2031,7 @@ <div class="shell"> <pre> -example.i:4: Warning(509): Overloaded foo(long) is shadowed by foo(int) at example.i:3. +example.i:4: Warning 509: Overloaded foo(long) is shadowed by foo(int) at example.i:3. </pre> </div> @@ -2041,7 +2041,7 @@ <div class="shell"> <pre> -example.i:4: Warning(516): Overloaded method foo(long) ignored. Method foo(int) +example.i:4: Warning 516: Overloaded method foo(long) ignored. Method foo(int) at example.i:3 used. </pre> </div> @@ -2091,7 +2091,7 @@ <div class="shell"> <pre> -example.i:3: Warning(467): Overloaded foo(int) not supported (no type checking +example.i:3: Warning 467: Overloaded foo(int) not supported (no type checking rule for 'int'). </pre> </div> Modified: trunk/Doc/Manual/Tcl.html =================================================================== --- trunk/Doc/Manual/Tcl.html 2010-01-09 00:42:01 UTC (rev 11809) +++ trunk/Doc/Manual/Tcl.html 2010-01-09 00:56:02 UTC (rev 11810) @@ -1502,7 +1502,7 @@ <div class="code"> <pre> -example.i:12: Warning(509): Overloaded spam(short) is shadowed by spam(int) +example.i:12: Warning 509: Overloaded spam(short) is shadowed by spam(int) at example.i:11. </pre> </div> Modified: trunk/Doc/Manual/Typemaps.html =================================================================== --- trunk/Doc/Manual/Typemaps.html 2010-01-09 00:42:01 UTC (rev 11809) +++ trunk/Doc/Manual/Typemaps.html 2010-01-09 00:56:02 UTC (rev 11810) @@ -3093,7 +3093,7 @@ <div class="targetlang"> <pre> -example.i:28: Warning(474): Method XX::create() usage of the optimal attribute in the out +example.i:28: Warning 474: Method XX::create() usage of the optimal attribute in the out typemap at example.i:14 ignored as the following cannot be used to generate optimal code: try { result = XX::create(); @@ -3115,7 +3115,7 @@ <div class="targetlang"> <pre> -example.i:21: Warning(475): Multiple calls to XX::create() might be generated due to +example.i:21: Warning 475: Multiple calls to XX::create() might be generated due to optimal attribute usage in the out typemap at example.i:7. </pre> </div> Modified: trunk/Doc/Manual/Warnings.html =================================================================== --- trunk/Doc/Manual/Warnings.html 2010-01-09 00:42:01 UTC (rev 11809) +++ trunk/Doc/Manual/Warnings.html 2010-01-09 00:56:02 UTC (rev 11810) @@ -44,8 +44,8 @@ <div class="shell"> <pre> -example.i:16: Warning(501): Overloaded declaration ignored. bar(double) -example.i:15: Warning(501): Previous declaration is bar(int) +example.i:16: Warning 501: Overloaded declaration ignored. bar(double) +example.i:15: Warning 501: Previous declaration is bar(int) </pre> </div> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-03-06 19:35:32
|
Revision: 11921 http://swig.svn.sourceforge.net/swig/?rev=11921&view=rev Author: wsfulton Date: 2010-03-06 19:35:25 +0000 (Sat, 06 Mar 2010) Log Message: ----------- Correctly mangle the html section names to prevent name clashes in the pdf document Modified Paths: -------------- trunk/Doc/Manual/CSharp.html trunk/Doc/Manual/Chicken.html trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Customization.html trunk/Doc/Manual/Guile.html trunk/Doc/Manual/Java.html trunk/Doc/Manual/Library.html trunk/Doc/Manual/Lisp.html trunk/Doc/Manual/Lua.html trunk/Doc/Manual/Modula3.html trunk/Doc/Manual/Modules.html trunk/Doc/Manual/Perl5.html trunk/Doc/Manual/Ruby.html trunk/Doc/Manual/SWIG.html trunk/Doc/Manual/SWIGPlus.html trunk/Doc/Manual/Typemaps.html trunk/Doc/Manual/Warnings.html Modified: trunk/Doc/Manual/CSharp.html =================================================================== --- trunk/Doc/Manual/CSharp.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/CSharp.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -310,7 +310,7 @@ <li> <p> Support for attaching C# attributes to wrapped methods, variables and enum values. -This is done using the <tt>%csattributes</tt> feature, see <a href="Customization.html#features">%feature directives</a>. +This is done using the <tt>%csattributes</tt> feature, see <a href="Customization.html#Customization_features">%feature directives</a>. Note that C# attributes are attached to proxy classes and enums using the <tt>csattributes</tt> typemap. For example, imagine we have a custom attribute class, <tt>ThreadSafeAttribute</tt>, for labelling thread safety. The following SWIG code shows how to attach this C# attribute to some methods and the class declaration itself: @@ -729,7 +729,7 @@ SWIG already provides the framework for throwing C# exceptions if it is able to detect that a C++ exception could be thrown. Automatically detecting that a C++ exception could be thrown is only possible when a C++ exception specification is used, see <a href="SWIGPlus.html#SWIGPlus_exception_specifications">Exception specifications</a>. -The <a href="Customization.html#exception">Exception handling with %exception</a> section details the <tt>%exception</tt> feature. +The <a href="Customization.html#Customization_exception">Exception handling with %exception</a> section details the <tt>%exception</tt> feature. Customised code for handling exceptions with or without a C++ exception specification is possible and the details follow. However anyone wishing to do this should be familiar with the contents of the sections referred to above. </p> @@ -1005,7 +1005,7 @@ <p> Let's consider a similar, but more common example that throws a C++ exception from within a wrapped function. -We can use <tt>%exception</tt> as mentioned in <a href="Customization.html#exception">Exception handling with %exception</a>. +We can use <tt>%exception</tt> as mentioned in <a href="Customization.html#Customization_exception">Exception handling with %exception</a>. </p> <div class="code"> Modified: trunk/Doc/Manual/Chicken.html =================================================================== --- trunk/Doc/Manual/Chicken.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Chicken.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -35,7 +35,7 @@ <li><a href="#Chicken_nn16">Typemaps</a> <li><a href="#Chicken_nn17">Pointers</a> <ul> -<li><a href="#collection">Garbage collection</a> +<li><a href="#Chicken_collection">Garbage collection</a> </ul> <li><a href="#Chicken_nn18">Unsupported features and known problems</a> <ul> @@ -80,7 +80,7 @@ relies on some recent additions to CHICKEN, which are only present in releases of CHICKEN with version number <strong>greater than or equal to 1.89</strong>. - To use a chicken version between 1.40 and 1.89, see the <a href="#collection">Garbage collection</a> + To use a chicken version between 1.40 and 1.89, see the <a href="#Chicken_collection">Garbage collection</a> section below. </p> @@ -225,7 +225,7 @@ a function that must be called, the constant will appear as a scheme variable. This causes the generated .scm file to just contain the code <tt>(set! MYCONSTANT1 (MYCONSTANT1))</tt>. See - <a href="Customization.html#features">Features and the %feature directive</a> + <a href="Customization.html#Customization_features">Features and the %feature directive</a> for info on how to apply the %feature. </p> @@ -253,7 +253,7 @@ <p>The SWIG chicken module has support for exceptions thrown from C or C++ code to be caught in scheme. - See <a href="Customization.html#exception">Exception handling with %exception</a> + See <a href="Customization.html#Customization_exception">Exception handling with %exception</a> for more information about declaring exceptions in the interface file. </p> @@ -519,7 +519,7 @@ type. flags is either zero or SWIG_POINTER_DISOWN (see below). </p> -<H3><a name="collection"></a>19.6.1 Garbage collection</H3> +<H3><a name="Chicken_collection"></a>19.6.1 Garbage collection</H3> <p>If the owner flag passed to <code>SWIG_NewPointerObj</code> is 1, <code>NewPointerObj</code> will add a @@ -530,7 +530,7 @@ be garbage collected, SWIG will automatically set the owner flag to 1. For other functions, the <code>%newobject</code> directive must be specified for functions whose return values should be garbage collected. See - <a href="Customization.html#ownership">Object ownership and %newobject</a> for more information. + <a href="Customization.html#Customization_ownership">Object ownership and %newobject</a> for more information. </p> <p>In situations where a C or C++ function will assume ownership of a pointer, and thus Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Contents.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -223,7 +223,7 @@ <ul> <li><a href="SWIGPlus.html#SWIGPlus_nn24">Dispatch function generation</a> <li><a href="SWIGPlus.html#SWIGPlus_nn25">Ambiguity in Overloading</a> -<li><a href="SWIGPlus.html#ambiguity_resolution_renaming">Ambiguity resolution and renaming</a> +<li><a href="SWIGPlus.html#SWIGPlus_ambiguity_resolution_renaming">Ambiguity resolution and renaming</a> <li><a href="SWIGPlus.html#SWIGPlus_nn27">Comments on overloading</a> </ul> <li><a href="SWIGPlus.html#SWIGPlus_nn28">Wrapping overloaded operators</a> @@ -410,7 +410,7 @@ <!-- INDEX --> <div class="sectiontoc"> <ul> -<li><a href="Customization.html#exception">Exception handling with %exception</a> +<li><a href="Customization.html#Customization_exception">Exception handling with %exception</a> <ul> <li><a href="Customization.html#Customization_nn3">Handling exceptions in C code</a> <li><a href="Customization.html#Customization_nn4">Exception handling with longjmp()</a> @@ -420,14 +420,14 @@ <li><a href="Customization.html#Customization_exception_special_variables">Special variables for %exception</a> <li><a href="Customization.html#Customization_nn7">Using The SWIG exception library</a> </ul> -<li><a href="Customization.html#ownership">Object ownership and %newobject</a> -<li><a href="Customization.html#features">Features and the %feature directive</a> +<li><a href="Customization.html#Customization_ownership">Object ownership and %newobject</a> +<li><a href="Customization.html#Customization_features">Features and the %feature directive</a> <ul> <li><a href="Customization.html#Customization_feature_attributes">Feature attributes</a> <li><a href="Customization.html#Customization_feature_flags">Feature flags</a> <li><a href="Customization.html#Customization_clearing_features">Clearing features</a> <li><a href="Customization.html#Customization_features_default_args">Features and default arguments</a> -<li><a href="Customization.html#features_example">Feature example</a> +<li><a href="Customization.html#Customization_features_example">Feature example</a> </ul> </ul> </div> @@ -500,7 +500,7 @@ <li><a href="Modules.html#Modules_introduction">Modules Introduction</a> <li><a href="Modules.html#Modules_nn1">Basics</a> <li><a href="Modules.html#Modules_nn2">The SWIG runtime code</a> -<li><a href="Modules.html#external_run_time">External access to the runtime</a> +<li><a href="Modules.html#Modules_external_run_time">External access to the runtime</a> <li><a href="Modules.html#Modules_nn4">A word of caution about static libraries</a> <li><a href="Modules.html#Modules_nn5">References</a> <li><a href="Modules.html#Modules_nn6">Reducing the wrapper file size</a> @@ -685,7 +685,7 @@ <li><a href="Chicken.html#Chicken_nn16">Typemaps</a> <li><a href="Chicken.html#Chicken_nn17">Pointers</a> <ul> -<li><a href="Chicken.html#collection">Garbage collection</a> +<li><a href="Chicken.html#Chicken_collection">Garbage collection</a> </ul> <li><a href="Chicken.html#Chicken_nn18">Unsupported features and known problems</a> <ul> @@ -1356,7 +1356,7 @@ <li><a href="Ruby.html#Ruby_nn22">C++ namespaces</a> <li><a href="Ruby.html#Ruby_nn23">C++ templates</a> <li><a href="Ruby.html#Ruby_nn23_1">C++ Standard Template Library (STL)</a> -<li><a href="Ruby.html#C_STL_Functors">C++ STL Functors</a> +<li><a href="Ruby.html#Ruby_C_STL_Functors">C++ STL Functors</a> <li><a href="Ruby.html#Ruby_C_Iterators">C++ STL Iterators</a> <li><a href="Ruby.html#Ruby_nn24">C++ Smart Pointers</a> <li><a href="Ruby.html#Ruby_nn25">Cross-Language Polymorphism</a> Modified: trunk/Doc/Manual/Customization.html =================================================================== --- trunk/Doc/Manual/Customization.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Customization.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -10,7 +10,7 @@ <!-- INDEX --> <div class="sectiontoc"> <ul> -<li><a href="#exception">Exception handling with %exception</a> +<li><a href="#Customization_exception">Exception handling with %exception</a> <ul> <li><a href="#Customization_nn3">Handling exceptions in C code</a> <li><a href="#Customization_nn4">Exception handling with longjmp()</a> @@ -20,14 +20,14 @@ <li><a href="#Customization_exception_special_variables">Special variables for %exception</a> <li><a href="#Customization_nn7">Using The SWIG exception library</a> </ul> -<li><a href="#ownership">Object ownership and %newobject</a> -<li><a href="#features">Features and the %feature directive</a> +<li><a href="#Customization_ownership">Object ownership and %newobject</a> +<li><a href="#Customization_features">Features and the %feature directive</a> <ul> <li><a href="#Customization_feature_attributes">Feature attributes</a> <li><a href="#Customization_feature_flags">Feature flags</a> <li><a href="#Customization_clearing_features">Clearing features</a> <li><a href="#Customization_features_default_args">Features and default arguments</a> -<li><a href="#features_example">Feature example</a> +<li><a href="#Customization_features_example">Feature example</a> </ul> </ul> </div> @@ -45,7 +45,7 @@ customization mechanism known as "features" is described. </p> -<H2><a name="exception"></a>11.1 Exception handling with %exception</H2> +<H2><a name="Customization_exception"></a>11.1 Exception handling with %exception</H2> <p> @@ -351,7 +351,7 @@ named "allocate". This would include both global and member functions. The names supplied to <tt>%exception</tt> follow the same rules as for <tt>%rename</tt> described in the section on -<a href="SWIGPlus.html#ambiguity_resolution_renaming">Ambiguity resolution and renaming</a>. +<a href="SWIGPlus.html#SWIGPlus_ambiguity_resolution_renaming">Ambiguity resolution and renaming</a>. For example, if you wanted to define an exception handler for a specific class, you might write this: </p> @@ -582,7 +582,7 @@ functions. </p> -<H2><a name="ownership"></a>11.2 Object ownership and %newobject</H2> +<H2><a name="Customization_ownership"></a>11.2 Object ownership and %newobject</H2> <p> @@ -734,7 +734,7 @@ The results might not be what you expect. </p> -<H2><a name="features"></a>11.3 Features and the %feature directive</H2> +<H2><a name="Customization_features"></a>11.3 Features and the %feature directive</H2> <p> @@ -1123,7 +1123,7 @@ in SWIG-1.3.23 when the approach to wrapping methods with default arguments was changed. </p> -<H3><a name="features_example"></a>11.3.5 Feature example</H3> +<H3><a name="Customization_features_example"></a>11.3.5 Feature example</H3> <p> Modified: trunk/Doc/Manual/Guile.html =================================================================== --- trunk/Doc/Manual/Guile.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Guile.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -409,7 +409,7 @@ %feature("constasvar") can be applied to any constant, immutable variable, or enum. Instead of exporting the constant as a function that must be called, the constant will appear as a scheme variable. See -<a href="Customization.html#features">Features and the %feature directive</a> +<a href="Customization.html#Customization_features">Features and the %feature directive</a> for info on how to apply the %feature.</p> <H2><a name="Guile_nn12"></a>20.6 Representation of pointers as smobs</H2> @@ -487,7 +487,7 @@ So swig still exports a wrapper for the destructor, it just does not call scm_c_define_gsubr() for the wrapped delete function. So the only way to delete an object is from the garbage collector, since the delete function is not available to scripts. How swig determines if a type should be garbage collected -is exactly like described in <a href="Customization.html#ownership"> +is exactly like described in <a href="Customization.html#Customization_ownership"> Object ownership and %newobject</a> in the SWIG manual. All typemaps use an $owner var, and the guile module replaces $owner with 0 or 1 depending on feature:new.</p> Modified: trunk/Doc/Manual/Java.html =================================================================== --- trunk/Doc/Manual/Java.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Java.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -250,7 +250,7 @@ The name of the wrapper file is derived from the name of the input file. For example, if the input file is <tt>example.i</tt>, the name of the wrapper file is <tt>example_wrap.c</tt>. To change this, you can use the <tt>-o</tt> option. -It is also possible to change the <a href="SWIG.html#output">output directory </a> that the Java files are generated into using <tt>-outdir</tt>. +It is also possible to change the <a href="SWIG.html#SWIG_output">output directory </a> that the Java files are generated into using <tt>-outdir</tt>. </p> <p> @@ -837,7 +837,7 @@ Note that SWIG has inferred the C type and used an appropriate Java type that will fit the range of all possible values for the C type. By default SWIG generates <b>runtime constants</b>. They are not <b>compiler constants</b> that can, for example, be used in a switch statement. This can be changed by using the <tt>%javaconst(flag)</tt> directive. It works like all -the other <a href="Customization.html#features">%feature directives</a>. The default is <tt>%javaconst(0)</tt>. +the other <a href="Customization.html#Customization_features">%feature directives</a>. The default is <tt>%javaconst(0)</tt>. It is possible to initialize all wrapped constants from pure Java code by placing a <tt>%javaconst(1)</tt> <b>before</b> SWIG parses the constants. Putting it at the top of your interface file would ensure this. Here is an example: @@ -3751,7 +3751,7 @@ If a C or C++ function throws an error, you may want to convert that error into a Java exception. To do this, you can use the <tt>%exception</tt> directive. The <tt>%exception</tt> directive simply lets you rewrite part of the generated wrapper code to include an error check. -It is detailed in full in the <a href="Customization.html#exception">Exception handling with %exception</a> section. +It is detailed in full in the <a href="Customization.html#Customization_exception">Exception handling with %exception</a> section. </p> <p> Modified: trunk/Doc/Manual/Library.html =================================================================== --- trunk/Doc/Manual/Library.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Library.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -893,7 +893,7 @@ This will release the result if the appropriate target language support is available. SWIG provides the appropriate "newfree" typemap for <tt>char *</tt> so that the memory is released, however, you may need to provide your own "newfree" typemap for other types. -See <a href="Customization.html#ownership">Object ownership and %newobject</a> for more details. +See <a href="Customization.html#Customization_ownership">Object ownership and %newobject</a> for more details. </p> <H3><a name="Library_nn12"></a>8.3.4 cstring.i</H3> Modified: trunk/Doc/Manual/Lisp.html =================================================================== --- trunk/Doc/Manual/Lisp.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Lisp.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -269,7 +269,7 @@ want to lispify the names, also, before we forget you want to export the generated lisp names. To do this, we will use the SWIG <a - href="Customization.html#features">feature directive</a>. + href="Customization.html#Customization_features">feature directive</a>. Let's edit the interface file such that the C type "div_t*" is changed to Lisp type ":my-pointer", we lispify all names, export everything, and do some more stuff. Modified: trunk/Doc/Manual/Lua.html =================================================================== --- trunk/Doc/Manual/Lua.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Lua.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -1105,7 +1105,7 @@ <p> All of this code assumes that your C++ code uses exception specification (which a lot doesn't). If it doesn't consult the "<a href="SWIGPlus.html#SWIGPlus_catches">Exception handling with %catches</a>" section -and the "<a href="Customization.html#exception">Exception handling with %exception</a>" section, for more details on how to +and the "<a href="Customization.html#Customization_exception">Exception handling with %exception</a>" section, for more details on how to add exception specification to functions or globally (respectively). </p> Modified: trunk/Doc/Manual/Modula3.html =================================================================== --- trunk/Doc/Manual/Modula3.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Modula3.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -483,7 +483,7 @@ <li> How to manage storage with the garbage collector of Modula-3? Support for -<a href="Customization.html#ownership"> +<a href="Customization.html#Customization_ownership"> <tt>%newobject</tt> and <tt>%typemap(newfree)</tt></a> isn't implemented, yet. What's about resources that are managed by the garbage collector @@ -494,7 +494,7 @@ <li> How to turn C++ exceptions into Modula-3 exceptions? There's also no support for -<a href="Customization.html#exception"> +<a href="Customization.html#Customization_exception"> <tt>%exception</tt></a>, yet. </li> </ul> Modified: trunk/Doc/Manual/Modules.html =================================================================== --- trunk/Doc/Manual/Modules.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Modules.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -13,7 +13,7 @@ <li><a href="#Modules_introduction">Modules Introduction</a> <li><a href="#Modules_nn1">Basics</a> <li><a href="#Modules_nn2">The SWIG runtime code</a> -<li><a href="#external_run_time">External access to the runtime</a> +<li><a href="#Modules_external_run_time">External access to the runtime</a> <li><a href="#Modules_nn4">A word of caution about static libraries</a> <li><a href="#Modules_nn5">References</a> <li><a href="#Modules_nn6">Reducing the wrapper file size</a> @@ -241,7 +241,7 @@ is empty. Only modules compiled with the same pair will share type information. </p> -<H2><a name="external_run_time"></a>15.4 External access to the runtime</H2> +<H2><a name="Modules_external_run_time"></a>15.4 External access to the runtime</H2> <p>As described in <a href="Typemaps.html#runtime_type_checker">The run-time type checker</a>, Modified: trunk/Doc/Manual/Perl5.html =================================================================== --- trunk/Doc/Manual/Perl5.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Perl5.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -2921,7 +2921,7 @@ <p> It is possible to override the SWIG generated proxy/shadow methods, using <tt>%feature("shadow")</tt>. -It works like all the other <a href="Customization.html#features">%feature directives</a>. +It works like all the other <a href="Customization.html#Customization_features">%feature directives</a>. Here is a simple example showing how to add some Perl debug code to the constructor: </p> Modified: trunk/Doc/Manual/Ruby.html =================================================================== --- trunk/Doc/Manual/Ruby.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Ruby.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -58,7 +58,7 @@ <li><a href="#Ruby_nn22">C++ namespaces</a> <li><a href="#Ruby_nn23">C++ templates</a> <li><a href="#Ruby_nn23_1">C++ Standard Template Library (STL)</a> -<li><a href="#C_STL_Functors">C++ STL Functors</a> +<li><a href="#Ruby_C_STL_Functors">C++ STL Functors</a> <li><a href="#Ruby_C_Iterators">C++ STL Iterators</a> <li><a href="#Ruby_nn24">C++ Smart Pointers</a> <li><a href="#Ruby_nn25">Cross-Language Polymorphism</a> @@ -2336,7 +2336,7 @@ -<H3><a name="C_STL_Functors"></a>32.3.14 C++ STL Functors</H3> +<H3><a name="Ruby_C_STL_Functors"></a>32.3.14 C++ STL Functors</H3> <p>Some containers in the STL allow you to modify their default @@ -6089,7 +6089,7 @@ -<p> See <a href="http://www.swig.org/Doc1.3/SWIGDocumentation.html#ownership">Object +<p> See <a href="http://www.swig.org/Doc1.3/SWIGDocumentation.html#Customization_ownership">Object ownership and %newobject</a> for further details.</p> @@ -10050,7 +10050,7 @@ <p>In this case, the default SWIG behavior for calling member functions is incorrect. The Ruby object should assume ownership of the returned object. This can be done by using the %newobject directive. -See <a href="file:///d:/msys/1.0/src/SWIG/Doc/Manual/Customization.html#ownership"> +See <a href="file:///d:/msys/1.0/src/SWIG/Doc/Manual/Customization.html#Customization_ownership"> Object ownership and %newobject</a> for more information. </p> Modified: trunk/Doc/Manual/SWIG.html =================================================================== --- trunk/Doc/Manual/SWIG.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/SWIG.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -1618,7 +1618,7 @@ <p> The <tt>%mutable</tt> and <tt>%immutable</tt> directives are actually -<a href="Customization.html#features">%feature directives</a> defined like this: +<a href="Customization.html#Customization_features">%feature directives</a> defined like this: </p> <div class="code"><pre> @@ -1742,7 +1742,7 @@ <p> More powerful variants of <tt>%rename</tt> and <tt>%ignore</tt> directives can be used to help wrap C++ overloaded functions and methods or C++ methods which use default arguments. This is described in the -<a href="SWIGPlus.html#ambiguity_resolution_renaming">Ambiguity resolution and renaming</a> section in the C++ chapter. +<a href="SWIGPlus.html#SWIGPlus_ambiguity_resolution_renaming">Ambiguity resolution and renaming</a> section in the C++ chapter. </p> <p> Modified: trunk/Doc/Manual/SWIGPlus.html =================================================================== --- trunk/Doc/Manual/SWIGPlus.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/SWIGPlus.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -42,7 +42,7 @@ <ul> <li><a href="#SWIGPlus_nn24">Dispatch function generation</a> <li><a href="#SWIGPlus_nn25">Ambiguity in Overloading</a> -<li><a href="#ambiguity_resolution_renaming">Ambiguity resolution and renaming</a> +<li><a href="#SWIGPlus_ambiguity_resolution_renaming">Ambiguity resolution and renaming</a> <li><a href="#SWIGPlus_nn27">Comments on overloading</a> </ul> <li><a href="#SWIGPlus_nn28">Wrapping overloaded operators</a> @@ -1128,7 +1128,7 @@ <p> Please see the <a href="Customization.html#Customization_features_default_args">Features and default arguments</a> section for more information on using <tt>%feature</tt> with functions with default arguments. -The <a href="#ambiguity_resolution_renaming">Ambiguity resolution and renaming</a> section +The <a href="#SWIGPlus_ambiguity_resolution_renaming">Ambiguity resolution and renaming</a> section also deals with using <tt>%rename</tt> and <tt>%ignore</tt> on methods with default arguments. If you are writing your own typemaps for types used in methods with default arguments, you may also need to write a <tt>typecheck</tt> typemap. See the <a href="Typemaps.html#Typemaps_overloading">Typemaps and overloading</a> section for details or otherwise @@ -2127,7 +2127,7 @@ functions and methods. The only way to fix the problem is to read the next section. </p> -<H3><a name="ambiguity_resolution_renaming"></a>6.15.3 Ambiguity resolution and renaming</H3> +<H3><a name="SWIGPlus_ambiguity_resolution_renaming"></a>6.15.3 Ambiguity resolution and renaming</H3> <p> @@ -4103,7 +4103,7 @@ <p> -Some target languages provide support for the <tt>nspace</tt> <a href="Customization.html#features">feature</a>. +Some target languages provide support for the <tt>nspace</tt> <a href="Customization.html#Customization_features">feature</a>. The feature can be applied to any class, struct, union or enum declared within a named namespace. The feature wraps the type within the target language specific concept of a namespace, for example, a Java package or C# namespace. @@ -4304,7 +4304,7 @@ <p> Since exception specifications are sometimes only used sparingly, this alone may not be enough to properly handle C++ exceptions. To do that, a different set of special SWIG directives are used. -Consult the "<a href="Customization.html#exception">Exception handling with %exception</a>" section for details. +Consult the "<a href="Customization.html#Customization_exception">Exception handling with %exception</a>" section for details. The next section details a way of simulating an exception specification or replacing an existing one. </p> Modified: trunk/Doc/Manual/Typemaps.html =================================================================== --- trunk/Doc/Manual/Typemaps.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Typemaps.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -2503,7 +2503,7 @@ </div> <p> -See <a href="Customization.html#ownership">Object ownership and %newobject</a> for further details. +See <a href="Customization.html#Customization_ownership">Object ownership and %newobject</a> for further details. </p> <H3><a name="Typemaps_nn35"></a>10.5.10 "memberin" typemap</H3> @@ -2587,7 +2587,7 @@ <p> Note that if your methods do not have an exception specification yet they do throw exceptions, SWIG cannot know how to deal with them. -For a neat way to handle these, see the <a href="Customization.html#exception">Exception handling with %exception</a> section. +For a neat way to handle these, see the <a href="Customization.html#Customization_exception">Exception handling with %exception</a> section. </p> <H2><a name="Typemaps_nn39"></a>10.6 Some typemap examples</H2> @@ -3075,7 +3075,7 @@ <p> The "optimal" attribute optimisation is not turned on by default as it has a number of restrictions. Firstly, some code cannot be condensed into a simple call for passing into the copy constructor. -One common occurrence is when <a href="Customization.html#exception">%exception</a> is used. +One common occurrence is when <a href="Customization.html#Customization_exception">%exception</a> is used. Consider adding the following <tt>%exception</tt> to the example: </p> @@ -3610,7 +3610,7 @@ <p>This section covers how to use these functions from typemaps. To learn how to call these functions from external files (not the generated _wrap.c file), see -the <a href="Modules.html#external_run_time">External access to the run-time system</a> +the <a href="Modules.html#Modules_external_run_time">External access to the run-time system</a> section.</p> <p>When pointers are converted in a typemap, the typemap code often looks Modified: trunk/Doc/Manual/Warnings.html =================================================================== --- trunk/Doc/Manual/Warnings.html 2010-03-06 19:11:32 UTC (rev 11920) +++ trunk/Doc/Manual/Warnings.html 2010-03-06 19:35:25 UTC (rev 11921) @@ -102,7 +102,7 @@ <p> The <tt>%warnfilter</tt> directive has the same semantics as other declaration modifiers like <tt>%rename</tt>, <tt>%ignore</tt> and <tt>%feature</tt>, see the -<a href="Customization.html#features">%feature directive</a> section. For example, if you wanted to +<a href="Customization.html#Customization_features">%feature directive</a> section. For example, if you wanted to suppress a warning for a method in a class hierarchy, you could do this: </p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-03-06 20:43:04
|
Revision: 11922 http://swig.svn.sourceforge.net/swig/?rev=11922&view=rev Author: wsfulton Date: 2010-03-06 20:42:53 +0000 (Sat, 06 Mar 2010) Log Message: ----------- Correctly mangle the html section names to prevent name clashes in the pdf document Modified Paths: -------------- trunk/Doc/Manual/CSharp.html trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Customization.html trunk/Doc/Manual/Java.html trunk/Doc/Manual/Modula3.html Modified: trunk/Doc/Manual/CSharp.html =================================================================== --- trunk/Doc/Manual/CSharp.html 2010-03-06 19:35:25 UTC (rev 11921) +++ trunk/Doc/Manual/CSharp.html 2010-03-06 20:42:53 UTC (rev 11922) @@ -9,35 +9,35 @@ <!-- INDEX --> <div class="sectiontoc"> <ul> -<li><a href="#csharp_introduction">Introduction</a> -<li><a href="#csharp_differences_java">Differences to the Java module</a> +<li><a href="#CSharp_introduction">Introduction</a> +<li><a href="#CSharp_differences_java">Differences to the Java module</a> <li><a href="#CSharp_arrays">C# Arrays</a> <ul> <li><a href="#CSharp_arrays_swig_library">The SWIG C arrays library</a> <li><a href="#CSharp_arrays_pinvoke_default_array_marshalling">Managed arrays using P/Invoke default array marshalling</a> <li><a href="#CSharp_arrays_pinning">Managed arrays using pinning</a> </ul> -<li><a href="#csharp_exceptions">C# Exceptions</a> +<li><a href="#CSharp_exceptions">C# Exceptions</a> <ul> -<li><a href="#csharp_exception_example_check_typemap">C# exception example using "check" typemap</a> -<li><a href="#csharp_exception_example_percent_exception">C# exception example using %exception</a> -<li><a href="#csharp_exception_example_exception_specifications">C# exception example using exception specifications</a> -<li><a href="#csharp_custom_application_exception">Custom C# ApplicationException example</a> +<li><a href="#CSharp_exception_example_check_typemap">C# exception example using "check" typemap</a> +<li><a href="#CSharp_exception_example_percent_exception">C# exception example using %exception</a> +<li><a href="#CSharp_exception_example_exception_specifications">C# exception example using exception specifications</a> +<li><a href="#CSharp_custom_application_exception">Custom C# ApplicationException example</a> </ul> -<li><a href="#csharp_directors">C# Directors</a> +<li><a href="#CSharp_directors">C# Directors</a> <ul> -<li><a href="#csharp_directors_example">Directors example</a> -<li><a href="#csharp_directors_implementation">Directors implementation</a> -<li><a href="#csharp_director_caveats">Director caveats</a> +<li><a href="#CSharp_directors_example">Directors example</a> +<li><a href="#CSharp_directors_implementation">Directors implementation</a> +<li><a href="#CSharp_director_caveats">Director caveats</a> </ul> -<li><a href="#csharp_typemap_examples">C# Typemap examples</a> +<li><a href="#CSharp_typemap_examples">C# Typemap examples</a> <ul> -<li><a href="#csharp_memory_management_member_variables">Memory management when returning references to member variables</a> -<li><a href="#csharp_memory_management_objects">Memory management for objects passed to the C++ layer</a> -<li><a href="#csharp_date_marshalling">Date marshalling using the csin typemap and associated attributes</a> -<li><a href="#csharp_date_properties">A date example demonstrating marshalling of C# properties</a> -<li><a href="#csharp_partial_classes">Turning wrapped classes into partial classes</a> -<li><a href="#csharp_extending_proxy_class">Extending proxy classes with additional C# code</a> +<li><a href="#CSharp_memory_management_member_variables">Memory management when returning references to member variables</a> +<li><a href="#CSharp_memory_management_objects">Memory management for objects passed to the C++ layer</a> +<li><a href="#CSharp_date_marshalling">Date marshalling using the csin typemap and associated attributes</a> +<li><a href="#CSharp_date_properties">A date example demonstrating marshalling of C# properties</a> +<li><a href="#CSharp_partial_classes">Turning wrapped classes into partial classes</a> +<li><a href="#CSharp_extending_proxy_class">Extending proxy classes with additional C# code</a> </ul> </ul> </div> @@ -45,7 +45,7 @@ -<H2><a name="csharp_introduction"></a>18.1 Introduction</H2> +<H2><a name="CSharp_introduction"></a>18.1 Introduction</H2> <p> @@ -65,7 +65,7 @@ Monodoc, available from the Mono project, has a very useful section titled <a href="http://www.mono-project.com/Interop_with_Native_Libraries">Interop with native libraries</a>. </p> -<H2><a name="csharp_differences_java"></a>18.2 Differences to the Java module</H2> +<H2><a name="CSharp_differences_java"></a>18.2 Differences to the Java module</H2> <p> @@ -137,7 +137,7 @@ C# doesn't support the notion of throws clauses. Therefore there is no 'throws' typemap attribute support for adding exception classes to a throws clause. Likewise there is no need for an equivalent to <tt>%javaexception</tt>. -In fact, throwing C# exceptions works quite differently, see <a href="CSharp.html#csharp_exceptions">C# Exceptions</a> below. +In fact, throwing C# exceptions works quite differently, see <a href="CSharp.html#CSharp_exceptions">C# Exceptions</a> below. </li> <li> @@ -215,10 +215,10 @@ <p> Unlike the "javain" typemap, the "csin" typemap does not support the 'pgcpp' attribute as the C# module does not have a premature garbage collection prevention parameter. The "csin" typemap supports additional optional attributes called 'cshin' and 'terminator'. -The 'cshin' attribute should contain the parameter type and name whenever a <a href="Java.html#java_constructor_helper_function">constructor helper function</a> is generated due to the 'pre' or 'post' attributes. +The 'cshin' attribute should contain the parameter type and name whenever a <a href="Java.html#Java_constructor_helper_function">constructor helper function</a> is generated due to the 'pre' or 'post' attributes. The 'terminator' attribute normally just contains a closing brace for when the 'pre' attribute contains an opening brace, such as when a C# <tt>using</tt> or <tt>fixed</tt> block is started. Note that 'pre', 'post', 'terminator' and 'cshin' attributes are not used for marshalling the property set. -Please see the <a href="#csharp_date_marshalling">Date marshalling example</a> and <a href="#csharp_date_properties">Date marshalling of properties example</a> for further understanding of these "csin" applicable attributes. +Please see the <a href="#CSharp_date_marshalling">Date marshalling example</a> and <a href="#CSharp_date_properties">Date marshalling of properties example</a> for further understanding of these "csin" applicable attributes. </p> </li> @@ -255,7 +255,7 @@ Support for type attributes. The 'imtype' and 'cstype' typemaps can have an optional <tt>inattributes</tt> and <tt>outattributes</tt> typemap attribute. The 'imtype' typemap can also have an optional <tt>directorinattributes</tt> and <tt>directoroutattributes</tt> -typemap attribute which attaches to director delegates, an implementation detail of directors, see <a href="#csharp_directors_implementation">directors implementation</a>. +typemap attribute which attaches to director delegates, an implementation detail of directors, see <a href="#CSharp_directors_implementation">directors implementation</a>. Note that there are C# attributes and typemap attributes, don't get confused between the two!! The C# attributes specified in these typemap attributes are generated wherever the type is used in the C# wrappers. These can be used to specify any C# attribute associated with a C/C++ type, but are more typically used for the C# <tt>MarshalAs</tt> attribute. @@ -406,7 +406,7 @@ </li> <li> -<a name="csharp_module_directive"></a> +<a name="CSharp_module_directive"></a> <p> The name of the intermediary class can be changed from its default, that is, the module name with PINVOKE appended after it. The module directive attribute <tt>imclassname</tt> is used to achieve this: @@ -441,7 +441,7 @@ <p> <b><tt>$imclassname</tt></b><br> This special variable expands to the intermediary class name. For C# this is usually the same as '$modulePINVOKE' ('$moduleJNI' for Java), -unless the imclassname attribute is specified in the <a href="CSharp.html#csharp_module_directive">%module directive</a>. +unless the imclassname attribute is specified in the <a href="CSharp.html#CSharp_module_directive">%module directive</a>. </p> <p> @@ -721,7 +721,7 @@ -<H2><a name="csharp_exceptions"></a>18.4 C# Exceptions</H2> +<H2><a name="CSharp_exceptions"></a>18.4 C# Exceptions</H2> <p> @@ -818,7 +818,7 @@ </p> -<H3><a name="csharp_exception_example_check_typemap"></a>18.4.1 C# exception example using "check" typemap</H3> +<H3><a name="CSharp_exception_example_check_typemap"></a>18.4.1 C# exception example using "check" typemap</H3> <p> @@ -1000,7 +1000,7 @@ Actually it will issue this warning for any function beginning with <tt>SWIG_CSharpSetPendingException</tt>. </P> -<H3><a name="csharp_exception_example_percent_exception"></a>18.4.2 C# exception example using %exception</H3> +<H3><a name="CSharp_exception_example_percent_exception"></a>18.4.2 C# exception example using %exception</H3> <p> @@ -1065,7 +1065,7 @@ </pre> </div> -<H3><a name="csharp_exception_example_exception_specifications"></a>18.4.3 C# exception example using exception specifications</H3> +<H3><a name="CSharp_exception_example_exception_specifications"></a>18.4.3 C# exception example using exception specifications</H3> <p> @@ -1122,7 +1122,7 @@ Multiple catch handlers are generated should there be more than one exception specifications declared. </p> -<H3><a name="csharp_custom_application_exception"></a>18.4.4 Custom C# ApplicationException example</H3> +<H3><a name="CSharp_custom_application_exception"></a>18.4.4 Custom C# ApplicationException example</H3> <p> @@ -1256,7 +1256,7 @@ </pre> </div> -<H2><a name="csharp_directors"></a>18.5 C# Directors</H2> +<H2><a name="CSharp_directors"></a>18.5 C# Directors</H2> <p> @@ -1266,10 +1266,10 @@ <p> The following sections provide information on the C# director implementation and contain most of the information required to use the C# directors. -However, the <a href="Java.html#java_directors">Java directors</a> section should also be read in order to gain more insight into directors. +However, the <a href="Java.html#Java_directors">Java directors</a> section should also be read in order to gain more insight into directors. </p> -<H3><a name="csharp_directors_example"></a>18.5.1 Directors example</H3> +<H3><a name="CSharp_directors_example"></a>18.5.1 Directors example</H3> <p> @@ -1390,7 +1390,7 @@ </pre> </div> -<H3><a name="csharp_directors_implementation"></a>18.5.2 Directors implementation</H3> +<H3><a name="CSharp_directors_implementation"></a>18.5.2 Directors implementation</H3> <p> @@ -1576,7 +1576,7 @@ </pre> </div> -<H3><a name="csharp_director_caveats"></a>18.5.3 Director caveats</H3> +<H3><a name="CSharp_director_caveats"></a>18.5.3 Director caveats</H3> <p> @@ -1624,7 +1624,7 @@ should pass the call on to <tt>CSharpDefaults.DefaultMethod(int)</tt>using the C++ default value, as shown above. </p> -<H2><a name="csharp_typemap_examples"></a>18.6 C# Typemap examples</H2> +<H2><a name="CSharp_typemap_examples"></a>18.6 C# Typemap examples</H2> This section includes a few examples of typemaps. For more examples, you @@ -1632,12 +1632,12 @@ the SWIG library. -<H3><a name="csharp_memory_management_member_variables"></a>18.6.1 Memory management when returning references to member variables</H3> +<H3><a name="CSharp_memory_management_member_variables"></a>18.6.1 Memory management when returning references to member variables</H3> <p> This example shows how to prevent premature garbage collection of objects when the underlying C++ class returns a pointer or reference to a member variable. -The example is a direct equivalent to this <a href="Java.html#java_memory_management_objects">Java equivalent</a>. +The example is a direct equivalent to this <a href="Java.html#Java_memory_management_objects">Java equivalent</a>. </p> <p> @@ -1756,11 +1756,11 @@ Note the <tt>addReference</tt> call. </p> -<H3><a name="csharp_memory_management_objects"></a>18.6.2 Memory management for objects passed to the C++ layer</H3> +<H3><a name="CSharp_memory_management_objects"></a>18.6.2 Memory management for objects passed to the C++ layer</H3> <p> -The example is a direct equivalent to this <a href="Java.html#java_memory_management_objects">Java equivalent</a>. +The example is a direct equivalent to this <a href="Java.html#Java_memory_management_objects">Java equivalent</a>. Managing memory can be tricky when using C++ and C# proxy classes. The previous example shows one such case and this example looks at memory management for a class passed to a C++ method which expects the object to remain in scope after the function has returned. Consider the following two C++ classes: @@ -1875,14 +1875,14 @@ </div> -<H3><a name="csharp_date_marshalling"></a>18.6.3 Date marshalling using the csin typemap and associated attributes</H3> +<H3><a name="CSharp_date_marshalling"></a>18.6.3 Date marshalling using the csin typemap and associated attributes</H3> <p> -The <a href="Java.html#nan_exception_typemap">NaN Exception example</a> is a simple example of the "javain" typemap and its 'pre' attribute. +The <a href="Java.html#Java_nan_exception_typemap">NaN Exception example</a> is a simple example of the "javain" typemap and its 'pre' attribute. This example demonstrates how a C++ date class, say <tt>CDate</tt>, can be mapped onto the standard .NET date class, <tt>System.DateTime</tt> by using the 'pre', 'post' and 'pgcppname' attributes of the "csin" typemap (the C# equivalent to the "javain" typemap). -The example is an equivalent to the <a href="Java.html#java_date_marshalling">Java Date marshalling example</a>. +The example is an equivalent to the <a href="Java.html#Java_date_marshalling">Java Date marshalling example</a>. The idea is that the <tt>System.DateTime</tt> is used wherever the C++ API uses a <tt>CDate</tt>. Let's assume the code being wrapped is as follows: </p> @@ -2159,7 +2159,7 @@ </pre> </div> -<H3><a name="csharp_date_properties"></a>18.6.4 A date example demonstrating marshalling of C# properties</H3> +<H3><a name="CSharp_date_properties"></a>18.6.4 A date example demonstrating marshalling of C# properties</H3> <p> @@ -2260,7 +2260,7 @@ </ul> -<H3><a name="csharp_partial_classes"></a>18.6.5 Turning wrapped classes into partial classes</H3> +<H3><a name="CSharp_partial_classes"></a>18.6.5 Turning wrapped classes into partial classes</H3> <p> @@ -2360,7 +2360,7 @@ The following example is an alternative approach to adding managed code to the generated proxy class. </p> -<H3><a name="csharp_extending_proxy_class"></a>18.6.6 Extending proxy classes with additional C# code</H3> +<H3><a name="CSharp_extending_proxy_class"></a>18.6.6 Extending proxy classes with additional C# code</H3> <p> Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2010-03-06 19:35:25 UTC (rev 11921) +++ trunk/Doc/Manual/Contents.html 2010-03-06 20:42:53 UTC (rev 11922) @@ -623,35 +623,35 @@ <!-- INDEX --> <div class="sectiontoc"> <ul> -<li><a href="CSharp.html#csharp_introduction">Introduction</a> -<li><a href="CSharp.html#csharp_differences_java">Differences to the Java module</a> +<li><a href="CSharp.html#CSharp_introduction">Introduction</a> +<li><a href="CSharp.html#CSharp_differences_java">Differences to the Java module</a> <li><a href="CSharp.html#CSharp_arrays">C# Arrays</a> <ul> <li><a href="CSharp.html#CSharp_arrays_swig_library">The SWIG C arrays library</a> <li><a href="CSharp.html#CSharp_arrays_pinvoke_default_array_marshalling">Managed arrays using P/Invoke default array marshalling</a> <li><a href="CSharp.html#CSharp_arrays_pinning">Managed arrays using pinning</a> </ul> -<li><a href="CSharp.html#csharp_exceptions">C# Exceptions</a> +<li><a href="CSharp.html#CSharp_exceptions">C# Exceptions</a> <ul> -<li><a href="CSharp.html#csharp_exception_example_check_typemap">C# exception example using "check" typemap</a> -<li><a href="CSharp.html#csharp_exception_example_percent_exception">C# exception example using %exception</a> -<li><a href="CSharp.html#csharp_exception_example_exception_specifications">C# exception example using exception specifications</a> -<li><a href="CSharp.html#csharp_custom_application_exception">Custom C# ApplicationException example</a> +<li><a href="CSharp.html#CSharp_exception_example_check_typemap">C# exception example using "check" typemap</a> +<li><a href="CSharp.html#CSharp_exception_example_percent_exception">C# exception example using %exception</a> +<li><a href="CSharp.html#CSharp_exception_example_exception_specifications">C# exception example using exception specifications</a> +<li><a href="CSharp.html#CSharp_custom_application_exception">Custom C# ApplicationException example</a> </ul> -<li><a href="CSharp.html#csharp_directors">C# Directors</a> +<li><a href="CSharp.html#CSharp_directors">C# Directors</a> <ul> -<li><a href="CSharp.html#csharp_directors_example">Directors example</a> -<li><a href="CSharp.html#csharp_directors_implementation">Directors implementation</a> -<li><a href="CSharp.html#csharp_director_caveats">Director caveats</a> +<li><a href="CSharp.html#CSharp_directors_example">Directors example</a> +<li><a href="CSharp.html#CSharp_directors_implementation">Directors implementation</a> +<li><a href="CSharp.html#CSharp_director_caveats">Director caveats</a> </ul> -<li><a href="CSharp.html#csharp_typemap_examples">C# Typemap examples</a> +<li><a href="CSharp.html#CSharp_typemap_examples">C# Typemap examples</a> <ul> -<li><a href="CSharp.html#csharp_memory_management_member_variables">Memory management when returning references to member variables</a> -<li><a href="CSharp.html#csharp_memory_management_objects">Memory management for objects passed to the C++ layer</a> -<li><a href="CSharp.html#csharp_date_marshalling">Date marshalling using the csin typemap and associated attributes</a> -<li><a href="CSharp.html#csharp_date_properties">A date example demonstrating marshalling of C# properties</a> -<li><a href="CSharp.html#csharp_partial_classes">Turning wrapped classes into partial classes</a> -<li><a href="CSharp.html#csharp_extending_proxy_class">Extending proxy classes with additional C# code</a> +<li><a href="CSharp.html#CSharp_memory_management_member_variables">Memory management when returning references to member variables</a> +<li><a href="CSharp.html#CSharp_memory_management_objects">Memory management for objects passed to the C++ layer</a> +<li><a href="CSharp.html#CSharp_date_marshalling">Date marshalling using the csin typemap and associated attributes</a> +<li><a href="CSharp.html#CSharp_date_properties">A date example demonstrating marshalling of C# properties</a> +<li><a href="CSharp.html#CSharp_partial_classes">Turning wrapped classes into partial classes</a> +<li><a href="CSharp.html#CSharp_extending_proxy_class">Extending proxy classes with additional C# code</a> </ul> </ul> </div> @@ -735,139 +735,139 @@ <!-- INDEX --> <div class="sectiontoc"> <ul> -<li><a href="Java.html#java_overview">Overview</a> -<li><a href="Java.html#java_preliminaries">Preliminaries</a> +<li><a href="Java.html#Java_overview">Overview</a> +<li><a href="Java.html#Java_preliminaries">Preliminaries</a> <ul> -<li><a href="Java.html#running_swig">Running SWIG</a> -<li><a href="Java.html#java_commandline">Additional Commandline Options</a> -<li><a href="Java.html#getting_right_headers">Getting the right header files</a> -<li><a href="Java.html#compiling_dynamic">Compiling a dynamic module</a> -<li><a href="Java.html#using_module">Using your module</a> -<li><a href="Java.html#dynamic_linking_problems">Dynamic linking problems</a> -<li><a href="Java.html#compilation_problems_cpp">Compilation problems and compiling with C++</a> -<li><a href="Java.html#building_windows">Building on Windows</a> +<li><a href="Java.html#Java_running_swig">Running SWIG</a> +<li><a href="Java.html#Java_commandline">Additional Commandline Options</a> +<li><a href="Java.html#Java_getting_right_headers">Getting the right header files</a> +<li><a href="Java.html#Java_compiling_dynamic">Compiling a dynamic module</a> +<li><a href="Java.html#Java_using_module">Using your module</a> +<li><a href="Java.html#Java_dynamic_linking_problems">Dynamic linking problems</a> +<li><a href="Java.html#Java_compilation_problems_cpp">Compilation problems and compiling with C++</a> +<li><a href="Java.html#Java_building_windows">Building on Windows</a> <ul> -<li><a href="Java.html#visual_studio">Running SWIG from Visual Studio</a> -<li><a href="Java.html#nmake">Using NMAKE</a> +<li><a href="Java.html#Java_visual_studio">Running SWIG from Visual Studio</a> +<li><a href="Java.html#Java_nmake">Using NMAKE</a> </ul> </ul> -<li><a href="Java.html#java_basic_tour">A tour of basic C/C++ wrapping</a> +<li><a href="Java.html#Java_basic_tour">A tour of basic C/C++ wrapping</a> <ul> -<li><a href="Java.html#module_packages_classes">Modules, packages and generated Java classes</a> -<li><a href="Java.html#functions">Functions</a> -<li><a href="Java.html#global_variables">Global variables</a> -<li><a href="Java.html#constants">Constants</a> -<li><a href="Java.html#enumerations">Enumerations</a> +<li><a href="Java.html#Java_module_packages_classes">Modules, packages and generated Java classes</a> +<li><a href="Java.html#Java_functions">Functions</a> +<li><a href="Java.html#Java_global_variables">Global variables</a> +<li><a href="Java.html#Java_constants">Constants</a> +<li><a href="Java.html#Java_enumerations">Enumerations</a> <ul> -<li><a href="Java.html#anonymous_enums">Anonymous enums</a> -<li><a href="Java.html#typesafe_enums">Typesafe enums</a> -<li><a href="Java.html#proper_enums">Proper Java enums</a> -<li><a href="Java.html#typeunsafe_enums">Type unsafe enums</a> -<li><a href="Java.html#simple_enums">Simple enums</a> +<li><a href="Java.html#Java_anonymous_enums">Anonymous enums</a> +<li><a href="Java.html#Java_typesafe_enums">Typesafe enums</a> +<li><a href="Java.html#Java_proper_enums">Proper Java enums</a> +<li><a href="Java.html#Java_typeunsafe_enums">Type unsafe enums</a> +<li><a href="Java.html#Java_simple_enums">Simple enums</a> </ul> -<li><a href="Java.html#pointers">Pointers</a> -<li><a href="Java.html#structures">Structures</a> -<li><a href="Java.html#classes">C++ classes</a> -<li><a href="Java.html#inheritance">C++ inheritance</a> -<li><a href="Java.html#pointers_refs_arrays">Pointers, references, arrays and pass by value</a> +<li><a href="Java.html#Java_pointers">Pointers</a> +<li><a href="Java.html#Java_structures">Structures</a> +<li><a href="Java.html#Java_classes">C++ classes</a> +<li><a href="Java.html#Java_inheritance">C++ inheritance</a> +<li><a href="Java.html#Java_pointers_refs_arrays">Pointers, references, arrays and pass by value</a> <ul> -<li><a href="Java.html#null_pointers">Null pointers</a> +<li><a href="Java.html#Java_null_pointers">Null pointers</a> </ul> -<li><a href="Java.html#overloaded_functions">C++ overloaded functions</a> -<li><a href="Java.html#java_default_arguments">C++ default arguments</a> -<li><a href="Java.html#namespaces">C++ namespaces</a> -<li><a href="Java.html#templates">C++ templates</a> -<li><a href="Java.html#smart_pointers">C++ Smart Pointers</a> +<li><a href="Java.html#Java_overloaded_functions">C++ overloaded functions</a> +<li><a href="Java.html#Java_default_arguments">C++ default arguments</a> +<li><a href="Java.html#Java_namespaces">C++ namespaces</a> +<li><a href="Java.html#Java_templates">C++ templates</a> +<li><a href="Java.html#Java_smart_pointers">C++ Smart Pointers</a> </ul> -<li><a href="Java.html#further_details">Further details on the generated Java classes</a> +<li><a href="Java.html#Java_further_details">Further details on the generated Java classes</a> <ul> -<li><a href="Java.html#imclass">The intermediary JNI class</a> +<li><a href="Java.html#Java_imclass">The intermediary JNI class</a> <ul> -<li><a href="Java.html#imclass_pragmas">The intermediary JNI class pragmas</a> +<li><a href="Java.html#Java_imclass_pragmas">The intermediary JNI class pragmas</a> </ul> -<li><a href="Java.html#java_module_class">The Java module class</a> +<li><a href="Java.html#Java_module_class">The Java module class</a> <ul> -<li><a href="Java.html#module_class_pragmas">The Java module class pragmas</a> +<li><a href="Java.html#Java_module_class_pragmas">The Java module class pragmas</a> </ul> -<li><a href="Java.html#java_proxy_classes">Java proxy classes</a> +<li><a href="Java.html#Java_proxy_classes">Java proxy classes</a> <ul> -<li><a href="Java.html#memory_management">Memory management</a> -<li><a href="Java.html#inheritance_mirroring">Inheritance</a> -<li><a href="Java.html#proxy_classes_gc">Proxy classes and garbage collection</a> -<li><a href="Java.html#java_pgcpp">The premature garbage collection prevention parameter for proxy class marshalling</a> -<li><a href="Java.html#java_multithread_libraries">Single threaded applications and thread safety</a> +<li><a href="Java.html#Java_memory_management">Memory management</a> +<li><a href="Java.html#Java_inheritance_mirroring">Inheritance</a> +<li><a href="Java.html#Java_proxy_classes_gc">Proxy classes and garbage collection</a> +<li><a href="Java.html#Java_pgcpp">The premature garbage collection prevention parameter for proxy class marshalling</a> +<li><a href="Java.html#Java_multithread_libraries">Single threaded applications and thread safety</a> </ul> -<li><a href="Java.html#type_wrapper_classes">Type wrapper classes</a> -<li><a href="Java.html#enum_classes">Enum classes</a> +<li><a href="Java.html#Java_type_wrapper_classes">Type wrapper classes</a> +<li><a href="Java.html#Java_enum_classes">Enum classes</a> <ul> -<li><a href="Java.html#typesafe_enums_classes">Typesafe enum classes</a> -<li><a href="Java.html#proper_enums_classes">Proper Java enum classes</a> -<li><a href="Java.html#typeunsafe_enums_classes">Type unsafe enum classes</a> +<li><a href="Java.html#Java_typesafe_enums_classes">Typesafe enum classes</a> +<li><a href="Java.html#Java_proper_enums_classes">Proper Java enum classes</a> +<li><a href="Java.html#Java_typeunsafe_enums_classes">Type unsafe enum classes</a> </ul> </ul> -<li><a href="Java.html#java_directors">Cross language polymorphism using directors</a> +<li><a href="Java.html#Java_directors">Cross language polymorphism using directors</a> <ul> -<li><a href="Java.html#java_enabling_directors">Enabling directors</a> -<li><a href="Java.html#java_directors_classes">Director classes</a> -<li><a href="Java.html#java_directors_overhead">Overhead and code bloat</a> -<li><a href="Java.html#java_directors_example">Simple directors example</a> -<li><a href="Java.html#java_directors_threading">Director threading issues</a> +<li><a href="Java.html#Java_enabling_directors">Enabling directors</a> +<li><a href="Java.html#Java_directors_classes">Director classes</a> +<li><a href="Java.html#Java_directors_overhead">Overhead and code bloat</a> +<li><a href="Java.html#Java_directors_example">Simple directors example</a> +<li><a href="Java.html#Java_directors_threading">Director threading issues</a> </ul> -<li><a href="Java.html#java_allprotected">Accessing protected members</a> -<li><a href="Java.html#common_customization">Common customization features</a> +<li><a href="Java.html#Java_allprotected">Accessing protected members</a> +<li><a href="Java.html#Java_common_customization">Common customization features</a> <ul> -<li><a href="Java.html#helper_functions">C/C++ helper functions</a> -<li><a href="Java.html#class_extension">Class extension with %extend</a> -<li><a href="Java.html#exception_handling">Exception handling with %exception and %javaexception</a> -<li><a href="Java.html#method_access">Method access with %javamethodmodifiers</a> +<li><a href="Java.html#Java_helper_functions">C/C++ helper functions</a> +<li><a href="Java.html#Java_class_extension">Class extension with %extend</a> +<li><a href="Java.html#Java_exception_handling">Exception handling with %exception and %javaexception</a> +<li><a href="Java.html#Java_method_access">Method access with %javamethodmodifiers</a> </ul> -<li><a href="Java.html#tips_techniques">Tips and techniques</a> +<li><a href="Java.html#Java_tips_techniques">Tips and techniques</a> <ul> -<li><a href="Java.html#input_output_parameters">Input and output parameters using primitive pointers and references</a> -<li><a href="Java.html#simple_pointers">Simple pointers</a> -<li><a href="Java.html#c_arrays">Wrapping C arrays with Java arrays</a> -<li><a href="Java.html#unbounded_c_arrays">Unbounded C Arrays</a> -<li><a href="Java.html#java_heap_allocations">Overriding new and delete to allocate from Java heap</a> +<li><a href="Java.html#Java_input_output_parameters">Input and output parameters using primitive pointers and references</a> +<li><a href="Java.html#Java_simple_pointers">Simple pointers</a> +<li><a href="Java.html#Java_c_arrays">Wrapping C arrays with Java arrays</a> +<li><a href="Java.html#Java_unbounded_c_arrays">Unbounded C Arrays</a> +<li><a href="Java.html#Java_heap_allocations">Overriding new and delete to allocate from Java heap</a> </ul> -<li><a href="Java.html#java_typemaps">Java typemaps</a> +<li><a href="Java.html#Java_typemaps">Java typemaps</a> <ul> -<li><a href="Java.html#default_primitive_type_mappings">Default primitive type mappings</a> +<li><a href="Java.html#Java_default_primitive_type_mappings">Default primitive type mappings</a> <li><a href="Java.html#Java_default_non_primitive_typemaps">Default typemaps for non-primitive types</a> -<li><a href="Java.html#jvm64">Sixty four bit JVMs</a> -<li><a href="Java.html#what_is_typemap">What is a typemap?</a> -<li><a href="Java.html#typemaps_c_to_java_types">Typemaps for mapping C/C++ types to Java types</a> -<li><a href="Java.html#typemap_attributes">Java typemap attributes</a> -<li><a href="Java.html#special_variables">Java special variables</a> -<li><a href="Java.html#typemaps_for_c_and_cpp">Typemaps for both C and C++ compilation</a> -<li><a href="Java.html#java_code_typemaps">Java code typemaps</a> -<li><a href="Java.html#java_directors_typemaps">Director specific typemaps</a> +<li><a href="Java.html#Java_jvm64">Sixty four bit JVMs</a> +<li><a href="Java.html#Java_what_is_typemap">What is a typemap?</a> +<li><a href="Java.html#Java_typemaps_c_to_java_types">Typemaps for mapping C/C++ types to Java types</a> +<li><a href="Java.html#Java_typemap_attributes">Java typemap attributes</a> +<li><a href="Java.html#Java_special_variables">Java special variables</a> +<li><a href="Java.html#Java_typemaps_for_c_and_cpp">Typemaps for both C and C++ compilation</a> +<li><a href="Java.html#Java_code_typemaps">Java code typemaps</a> +<li><a href="Java.html#Java_directors_typemaps">Director specific typemaps</a> </ul> -<li><a href="Java.html#typemap_examples">Typemap Examples</a> +<li><a href="Java.html#Java_typemap_examples">Typemap Examples</a> <ul> -<li><a href="Java.html#simpler_enum_classes">Simpler Java enums for enums without initializers</a> -<li><a href="Java.html#exception_typemap">Handling C++ exception specifications as Java exceptions</a> -<li><a href="Java.html#nan_exception_typemap">NaN Exception - exception handling for a particular type</a> -<li><a href="Java.html#converting_java_string_arrays">Converting Java String arrays to char ** </a> -<li><a href="Java.html#expanding_java_object">Expanding a Java object to multiple arguments</a> -<li><a href="Java.html#using_typemaps_return_arguments">Using typemaps to return arguments</a> -<li><a href="Java.html#adding_downcasts">Adding Java downcasts to polymorphic return types</a> -<li><a href="Java.html#adding_equals_method">Adding an equals method to the Java classes</a> -<li><a href="Java.html#void_pointers">Void pointers and a common Java base class</a> -<li><a href="Java.html#struct_pointer_pointer">Struct pointer to pointer</a> -<li><a href="Java.html#java_memory_management_member_variables">Memory management when returning references to member variables</a> -<li><a href="Java.html#java_memory_management_objects">Memory management for objects passed to the C++ layer</a> -<li><a href="Java.html#java_date_marshalling">Date marshalling using the javain typemap and associated attributes</a> +<li><a href="Java.html#Java_simpler_enum_classes">Simpler Java enums for enums without initializers</a> +<li><a href="Java.html#Java_exception_typemap">Handling C++ exception specifications as Java exceptions</a> +<li><a href="Java.html#Java_nan_exception_typemap">NaN Exception - exception handling for a particular type</a> +<li><a href="Java.html#Java_converting_java_string_arrays">Converting Java String arrays to char ** </a> +<li><a href="Java.html#Java_expanding_java_object">Expanding a Java object to multiple arguments</a> +<li><a href="Java.html#Java_using_typemaps_return_arguments">Using typemaps to return arguments</a> +<li><a href="Java.html#Java_adding_downcasts">Adding Java downcasts to polymorphic return types</a> +<li><a href="Java.html#Java_adding_equals_method">Adding an equals method to the Java classes</a> +<li><a href="Java.html#Java_void_pointers">Void pointers and a common Java base class</a> +<li><a href="Java.html#Java_struct_pointer_pointer">Struct pointer to pointer</a> +<li><a href="Java.html#Java_memory_management_member_variables">Memory management when returning references to member variables</a> +<li><a href="Java.html#Java_memory_management_objects">Memory management for objects passed to the C++ layer</a> +<li><a href="Java.html#Java_date_marshalling">Date marshalling using the javain typemap and associated attributes</a> </ul> -<li><a href="Java.html#java_directors_faq">Living with Java Directors</a> -<li><a href="Java.html#odds_ends">Odds and ends</a> +<li><a href="Java.html#Java_directors_faq">Living with Java Directors</a> +<li><a href="Java.html#Java_odds_ends">Odds and ends</a> <ul> -<li><a href="Java.html#javadoc_comments">JavaDoc comments</a> -<li><a href="Java.html#functional_interface">Functional interface without proxy classes</a> -<li><a href="Java.html#using_own_jni_functions">Using your own JNI functions</a> -<li><a href="Java.html#performance">Performance concerns and hints</a> -<li><a href="Java.html#java_debugging">Debugging</a> +<li><a href="Java.html#Java_javadoc_comments">JavaDoc comments</a> +<li><a href="Java.html#Java_functional_interface">Functional interface without proxy classes</a> +<li><a href="Java.html#Java_using_own_jni_functions">Using your own JNI functions</a> +<li><a href="Java.html#Java_performance">Performance concerns and hints</a> +<li><a href="Java.html#Java_debugging">Debugging</a> </ul> -<li><a href="Java.html#java_examples">Examples</a> +<li><a href="Java.html#Java_examples">Examples</a> </ul> </div> <!-- INDEX --> @@ -957,38 +957,38 @@ <!-- INDEX --> <div class="sectiontoc"> <ul> -<li><a href="Modula3.html#modula3_overview">Overview</a> +<li><a href="Modula3.html#Modula3_modula3_overview">Overview</a> <ul> -<li><a href="Modula3.html#whyscripting">Why not scripting ?</a> -<li><a href="Modula3.html#whymodula3">Why Modula-3 ?</a> -<li><a href="Modula3.html#whycpp">Why C / C++ ?</a> -<li><a href="Modula3.html#whyswig">Why SWIG ?</a> +<li><a href="Modula3.html#Modula3_whyscripting">Why not scripting ?</a> +<li><a href="Modula3.html#Modula3_whymodula3">Why Modula-3 ?</a> +<li><a href="Modula3.html#Modula3_whycpp">Why C / C++ ?</a> +<li><a href="Modula3.html#Modula3_whyswig">Why SWIG ?</a> </ul> -<li><a href="Modula3.html#conception">Conception</a> +<li><a href="Modula3.html#Modula3_conception">Conception</a> <ul> -<li><a href="Modula3.html#cinterface">Interfaces to C libraries</a> -<li><a href="Modula3.html#cppinterface">Interfaces to C++ libraries</a> +<li><a href="Modula3.html#Modula3_cinterface">Interfaces to C libraries</a> +<li><a href="Modula3.html#Modula3_cppinterface">Interfaces to C++ libraries</a> </ul> -<li><a href="Modula3.html#preliminaries">Preliminaries</a> +<li><a href="Modula3.html#Modula3_preliminaries">Preliminaries</a> <ul> -<li><a href="Modula3.html#compilers">Compilers</a> -<li><a href="Modula3.html#commandline">Additional Commandline Options</a> +<li><a href="Modula3.html#Modula3_compilers">Compilers</a> +<li><a href="Modula3.html#Modula3_commandline">Additional Commandline Options</a> </ul> -<li><a href="Modula3.html#modula3_typemaps">Modula-3 typemaps</a> +<li><a href="Modula3.html#Modula3_typemaps">Modula-3 typemaps</a> <ul> -<li><a href="Modula3.html#inoutparam">Inputs and outputs</a> -<li><a href="Modula3.html#ordinals">Subranges, Enumerations, Sets</a> -<li><a href="Modula3.html#class">Objects</a> -<li><a href="Modula3.html#imports">Imports</a> -<li><a href="Modula3.html#exceptions">Exceptions</a> -<li><a href="Modula3.html#typemap_example">Example</a> +<li><a href="Modula3.html#Modula3_inoutparam">Inputs and outputs</a> +<li><a href="Modula3.html#Modula3_ordinals">Subranges, Enumerations, Sets</a> +<li><a href="Modula3.html#Modula3_class">Objects</a> +<li><a href="Modula3.html#Modula3_imports">Imports</a> +<li><a href="Modula3.html#Modula3_exceptions">Exceptions</a> +<li><a href="Modula3.html#Modula3_typemap_example">Example</a> </ul> -<li><a href="Modula3.html#hints">More hints to the generator</a> +<li><a href="Modula3.html#Modula3_hints">More hints to the generator</a> <ul> -<li><a href="Modula3.html#features">Features</a> -<li><a href="Modula3.html#pragmas">Pragmas</a> +<li><a href="Modula3.html#Modula3_features">Features</a> +<li><a href="Modula3.html#Modula3_pragmas">Pragmas</a> </ul> -<li><a href="Modula3.html#remarks">Remarks</a> +<li><a href="Modula3.html#Modula3_remarks">Remarks</a> </ul> </div> <!-- INDEX --> Modified: trunk/Doc/Manual/Customization.html =================================================================== --- trunk/Doc/Manual/Customization.html 2010-03-06 19:35:25 UTC (rev 11921) +++ trunk/Doc/Manual/Customization.html 2010-03-06 20:42:53 UTC (rev 11922) @@ -854,7 +854,7 @@ </div> <p> -Further details can be obtained from the <a href="Java.html#exception_handling">Java exception handling</a> section. +Further details can be obtained from the <a href="Java.html#Java_exception_handling">Java exception handling</a> section. </p> <H3><a name="Customization_feature_flags"></a>11.3.2 Feature flags</H3> Modified: trunk/Doc/Manual/Java.html =================================================================== --- trunk/Doc/Manual/Java.html 2010-03-06 19:35:25 UTC (rev 11921) +++ trunk/Doc/Manual/Java.html 2010-03-06 20:42:53 UTC (rev 11922) @@ -9,139 +9,139 @@ <!-- INDEX --> <div class="sectiontoc"> <ul> -<li><a href="#java_overview">Overview</a> -<li><a href="#java_preliminaries">Preliminaries</a> +<li><a href="#Java_overview">Overview</a> +<li><a href="#Java_preliminaries">Preliminaries</a> <ul> -<li><a href="#running_swig">Running SWIG</a> -<li><a href="#java_commandline">Additional Commandline Options</a> -<li><a href="#getting_right_headers">Getting the right header files</a> -<li><a href="#compiling_dynamic">Compiling a dynamic module</a> -<li><a href="#using_module">Using your module</a> -<li><a href="#dynamic_linking_problems">Dynamic linking problems</a> -<li><a href="#compilation_problems_cpp">Compilation problems and compiling with C++</a> -<li><a href="#building_windows">Building on Windows</a> +<li><a href="#Java_running_swig">Running SWIG</a> +<li><a href="#Java_commandline">Additional Commandline Options</a> +<li><a href="#Java_getting_right_headers">Getting the right header files</a> +<li><a href="#Java_compiling_dynamic">Compiling a dynamic module</a> +<li><a href="#Java_using_module">Using your module</a> +<li><a href="#Java_dynamic_linking_problems">Dynamic linking problems</a> +<li><a href="#Java_compilation_problems_cpp">Compilation problems and compiling with C++</a> +<li><a href="#Java_building_windows">Building on Windows</a> <ul> -<li><a href="#visual_studio">Running SWIG from Visual Studio</a> -<li><a href="#nmake">Using NMAKE</a> +<li><a href="#Java_visual_studio">Running SWIG from Visual Studio</a> +<li><a href="#Java_nmake">Using NMAKE</a> </ul> </ul> -<li><a href="#java_basic_tour">A tour of basic C/C++ wrapping</a> +<li><a href="#Java_basic_tour">A tour of basic C/C++ wrapping</a> <ul> -<li><a href="#module_packages_classes">Modules, packages and generated Java classes</a> -<li><a href="#functions">Functions</a> -<li><a href="#global_variables">Global variables</a> -<li><a href="#constants">Constants</a> -<li><a href="#enumerations">Enumerations</a> +<li><a href="#Java_module_packages_classes">Modules, packages and generated Java classes</a> +<li><a href="#Java_functions">Functions</a> +<li><a href="#Java_global_variables">Global variables</a> +<li><a href="#Java_constants">Constants</a> +<li><a href="#Java_enumerations">Enumerations</a> <ul> -<li><a href="#anonymous_enums">Anonymous enums</a> -<li><a href="#typesafe_enums">Typesafe enums</a> -<li><a href="#proper_enums">Proper Java enums</a> -<li><a href="#typeunsafe_enums">Type unsafe enums</a> -<li><a href="#simple_enums">Simple enums</a> +<li><a href="#Java_anonymous_enums">Anonymous enums</a> +<li><a href="#Java_typesafe_enums">Typesafe enums</a> +<li><a href="#Java_proper_enums">Proper Java enums</a> +<li><a href="#Java_typeunsafe_enums">Type unsafe enums</a> +<li><a href="#Java_simple_enums">Simple enums</a> </ul> -<li><a href="#pointers">Pointers</a> -<li><a href="#structures">Structures</a> -<li><a href="#classes">C++ classes</a> -<li><a href="#inheritance">C++ inheritance</a> -<li><a href="#pointers_refs_arrays">Pointers, references, arrays and pass by value</a> +<li><a href="#Java_pointers">Pointers</a> +<li><a href="#Java_structures">Structures</a> +<li><a href="#Java_classes">C++ classes</a> +<li><a href="#Java_inheritance">C++ inheritance</a> +<li><a href="#Java_pointers_refs_arrays">Pointers, references, arrays and pass by value</a> <ul> -<li><a href="#null_pointers">Null pointers</a> +<li><a href="#Java_null_pointers">Null pointers</a> </ul> -<li><a href="#overloaded_functions">C++ overloaded functions</a> -<li><a href="#java_default_arguments">C++ default arguments</a> -<li><a href="#namespaces">C++ namespaces</a> -<li><a href="#templates">C++ templates</a> -<li><a href="#smart_pointers">C++ Smart Pointers</a> +<li><a href="#Java_overloaded_functions">C++ overloaded functions</a> +<li><a href="#Java_default_arguments">C++ default arguments</a> +<li><a href="#Java_namespaces">C++ namespaces</a> +<li><a href="#Java_templates">C++ templates</a> +<li><a href="#Java_smart_pointers">C++ Smart Pointers</a> </ul> -<li><a href="#further_details">Further details on the generated Java classes</a> +<li><a href="#Java_further_details">Further details on the generated Java classes</a> <ul> -<li><a href="#imclass">The intermediary JNI class</a> +<li><a href="#Java_imclass">The intermediary JNI class</a> <ul> -<li><a href="#imclass_pragmas">The intermediary JNI class pragmas</a> +<li><a href="#Java_imclass_pragmas">The intermediary JNI class pragmas</a> </ul> -<li><a href="#java_module_class">The Java module class</a> +<li><a href="#Java_module_class">The Java module class</a> <ul> -<li><a href="#module_class_pragmas">The Java module class pragmas</a> +<li><a href="#Java_module_class_pragmas">The Java module class pragmas</a> </ul> -<li><a href="#java_proxy_classes">Java proxy classes</a> +<li><a href="#Java_proxy_classes">Java proxy classes</a> <ul> -<li><a href="#memory_management">Memory management</a> -<li><a href="#inheritance_mirroring">Inheritance</a> -<li><a href="#proxy_classes_gc">Proxy classes and garbage collection</a> -<li><a href="#java_pgcpp">The premature garbage collection prevention parameter for proxy class marshalling</a> -<li><a href="#java_multithread_libraries">Single threaded applications and thread safety</a> +<li><a href="#Java_memory_management">Memory management</a> +<li><a href="#Java_inheritance_mirroring">Inheritance</a> +<li><a href="#Java_proxy_classes_gc">Proxy classes and garbage collection</a> +<li><a href="#Java_pgcpp">The premature garbage collection prevention parameter for proxy class marshalling</a> +<li><a href="#Java_multithread_libraries">Single threaded applications and thread safety</a> </ul> -<li><a href="#type_wrapper_classes">Type wrapper classes</a> -<li><a href="#enum_classes">Enum classes</a> +<li><a href="#Java_type_wrapper_classes">Type wrapper classes</a> +<li><a href="#Java_enum_classes">Enum classes</a> <ul> -<li><a href="#typesafe_enums_classes">Typesafe enum classes</a> -<li><a href="#proper_enums_classes">Proper Java enum classes</a> -<li><a href="#typeunsafe_enums_classes">Type unsafe enum classes</a> +<li><a href="#Java_typesafe_enums_classes">Typesafe enum classes</a> +<li><a href="#Java_proper_enums_classes">Proper Java enum classes</a> +<li><a href="#Java_typeunsafe_enums_classes">Type unsafe enum classes</a> </ul> </ul> -<li><a href="#java_directors">Cross language polymorphism using directors</a> +<li><a href="#Java_directors">Cross language polymorphism using directors</a> <ul> -<li><a href="#java_enabling_directors">Enabling directors</a> -<li><a href="#java_directors_classes">Director classes</a> -<li><a href="#java_directors_overhead">Overhead and code bloat</a> -<li><a href="#java_directors_example">Simple directors example</a> -<li><a href="#java_directors_threading">Director threading issues</a> +<li><a href="#Java_enabling_directors">Enabling directors</a> +<li><a href="#Java_directors_classes">Director classes</a> +<li><a href="#Java_directors_overhead">Overhead and code bloat</a> +<li><a href="#Java_directors_example">Simple directors example</a> +<li><a href="#Java_directors_threading">Director threading issues</a> </ul> -<li><a href="#java_allprotected">Accessing protected members</a> -<li><a href="#common_customization">Common customization features</a> +<li><a href="#Java_allprotected">Accessing protected members</a> +<li><a href="#Java_common_customization">Common customization features</a> <ul> -<li><a href="#helper_functions">C/C++ helper functions</a> -<li><a href="#class_extension">Class extension with %extend</a> -<li><a href="#exception_handling">Exception handling with %exception and %javaexception</a> -<li><a href="#method_access">Method access with %javamethodmodifiers</a> +<li><a href="#Java_helper_functions">C/C++ helper functions</a> +<li><a href="#Java_class_extension">Class extension with %extend</a> +<li><a href="#Java_exception_handling">Exception handling with %exception and %javaexception</a> +<li><a href="#Java_method_access">Method access with %javamethodmodifiers</a> </ul> -<li><a href="#tips_techniques">Tips and techniques</a> +<li><a href="#Java_tips_techniques">Tips and techniques</a> <ul> -<li><a href="#input_output_parameters">Input and output parameters using primitive pointers and references</a> -<li><a href="#simple_pointers">Simple pointers</a> -<li><a href="#c_arrays">Wrapping C arrays with Java arrays</a> -<li><a href="#unbounded_c_arrays">Unbounded C Arrays</a> -<li><a href="#java_heap_allocations">Overriding new and delete to allocate from Java heap</a> +<li><a href="#Java_input_output_parameters">Input and output parameters using primitive pointers and references</a> +<li><a href="#Java_simple_pointers">Simple pointers</a> +<li><a href="#Java_c_arrays">Wrapping C arrays with Java arrays</a> +<li><a href="#Java_unbounded_c_arrays">Unbounded C Arrays</a> +<li><a href="#Java_heap_allocations">Overriding new and delete to allocate from Java heap</a> </ul> -<li><a href="#java_typemaps">Java typemaps</a> +<li><a href="#Java_typemaps">Java typemaps</a> <ul> -<li><a href="#default_primitive_type_mappings">Default primitive type mappings</a> +<li><a href="#Java_default_primitive_type_mappings">Default primitive type mappings</a> <li><a href="#Java_default_non_primitive_typemaps">Default typemaps for non-primitive types</a> -<li><a href="#jvm64">Sixty four bit JVMs</a> -<li><a href="#what_is_typemap">What is a typemap?</a> -<li><a href="#typemaps_c_to_java_types">Typemaps for mapping C/C++ types to Java types</a> -<li><a href="#typemap_attributes">Java typemap attributes</a> -<li><a href="#special_variables">Java special variables</a> -<li><a href="#typemaps_for_c_and_cpp">Typemaps for both C and C++ compilation</a> -<li><a href="#java_code_typemaps">Java code typemaps</a> -<li><a href="#java_directors_typemaps">Director specific typemaps</a> +<li><a href="#Java_jvm64">Sixty four bit JVMs</a> +<li><a href="#Java_what_is_typemap">What is a typemap?</a> +<li><a href="#Java_typemaps_c_to_java_types">Typemaps for mapping C/C++ types to Java types</a> +<li><a href="#Java_typemap_attributes">Java typemap attributes</a> +<li><a href="#Java_special_variables">Java special variables</a> +<li><a href="#Java_typemaps_for_c_and_cpp">Typemaps for both C and C++ compilation</a> +<li><a href="#Java_code_typemaps">Java code typemaps</a> +<li><a href="#Java_directors_typemaps">Director specific typemaps</a> </ul> -<li><a href="#typemap_examples">Typemap Examples</a> +<li><a href="#Java_typemap_examples">Typemap Examples</a> <ul> -<li><a href="#simpler_enum_classes">Simpler Java enums for enums without initializers</a> -<li><a href="#exception_typemap">Handling C++ exception specifications as Java exceptions</a> -<li><a href="#nan_exception_typemap">NaN Exception - exception handling for a particular type</a> -<li><a href="#converting_java_string_arrays">Converting Java String arrays to char ** </a> -<li><a href="#expanding_java_object">Expanding a Java object to multiple arguments</a> -<li><a href="#using_typemaps_return_arguments">Using typemaps to return arguments</a> -<li><a href="#adding_downcasts">Adding Java downcasts to polymorphic return types</a> -<li><a href="#adding_equals_method">Adding an equals method to the Java classes</a> -<li><a href="#void_pointers">Void pointers and a common Java base class</a> -<li><a href="#struct_pointer_pointer">Struct pointer to pointer</a> -<li><a href="#java_memory_management_member_variables">Memory management when returning references to member variables</a> -<li><a href="#java_memory_management_objects">Memory management for objects passed to the C++ layer</a> -<li><a href="#java_date_marshalling">Date marshalling using the javain typemap and associated attributes</a> +<li><a href="#Java_simpler_enum_classes">Simpler Java enums for enums without initializers</a> +<li><a href="#Java_exception_typemap">Handling C++ exception specifications as Java exceptions</a> +<li><a href="#Java_nan_exception_typemap">NaN Exception - exception handling for a particular type</a> +<li><a href="#Java_converting_java_string_arrays">Converting Java String arrays to char ** </a> +<li><a href="#Java_expanding_java_object">Expanding a Java object to multiple arguments</a> +<li><a href="#Java_using_typemaps_return_arguments">Using typemaps to return arguments</a> +<li><a href="#Java_adding_downcasts">Adding Java downcasts to polymorphic return types</a> +<li><a href="#Java_adding_equals_method">Adding an equals method to the Java classes</a> +<li><a href="#Java_void_pointers">Void pointers and a common Java base class</a> +<li><a href="#Java_struct_pointer_pointer">Struct pointer to pointer</a> +<li><a href="#Java_memory_management_member_variables">Memory management when returning references to member variables</a> +<li><a href="#Java_memory_management_objects">Memory management for objects passed to the C++ layer</a> +<li><a href="#Java_date_marshalling">Date marshalling using the javain typemap and associated attributes</a> </ul> -<li><a href="#java_directors_faq">Living with Java Directors</a> -<li><a href="#odds_ends">Odds and ends</a> +<li><a href="#Java_directors_faq">Living with Java Directors</a> +<li><a href="#Java_odds_ends">Odds and ends</a> <ul> -<li><a href="#javadoc_comments">JavaDoc comments</a> -<li><a href="#functional_interface">Functional interface without proxy classes</a> -<li><a href="#using_own_jni_functions">Using your own JNI functions</a> -<li><a href="#performance">Performance concerns and hints</a> -<li><a href="#java_debugging">Debugging</a> +<li><a href="#Java_javadoc_comments">JavaDoc comments</a> +<li><a href="#Java_functional_interface">Functional interface without proxy classes</a> +<li><a href="#Java_using_own_jni_functions">Using your own JNI functions</a> +<li><a href="#Java_performance">Performance concerns and hints</a> +<li><a href="#Java_debugging">Debugging</a> </ul> -<li><a href="#java_examples">Examples</a> +<li><a href="#Java_examples">Examples</a> </ul> </div> <!-- INDEX --> @@ -154,7 +154,7 @@ </p> -<H2><a name="java_overview"></a>21.1 Overview</H2> +<H2><a name="Java_overview"></a>21.1 Overview</H2> <p> @@ -181,7 +181,7 @@ <p> This chapter starts with a few practicalities on running SWIG and compiling the generated code. If you are looking for the minimum amount to read, have a look at the sections up to and including the -<a href="#java_basic_tour">tour of basic C/C++ wrapping</a> section which explains how to call the various C/C++ code constructs from Java. +<a href="#Java_basic_tour">tour of basic C/C++ wrapping</a> section which explains how to call the various C/C++ code constructs from Java. Following this section are details of the C/C++ code and Java classes that SWIG generates. Due to the complexities of C and C++ there are different ways in which C/C++ code could be wrapped and called from Java. SWIG is a powerful tool and the rest of the chapter details how the default code wrapping can be tailored. @@ -189,7 +189,7 @@ The latter sections cover the advanced techniques of using typemaps for complete control of the wrapping process. </p> -<H2><a name="java_preliminaries"></a>21.2 Preliminaries</H2> +<H2><a name="Java_preliminaries"></a>21.2 Preliminaries</H2> <p> @@ -205,7 +205,7 @@ The Java module requires your system to support shared libraries and dynamic loading. This is the commonly used method to load JNI code so your system will more than likely support this.</p> -<H3><a name="running_swig"></a>21.2.1 Running SWIG</H3> +<H3><a name="Java_running_swig"></a>21.2.1 Running SWIG</H3> <p> @@ -254,7 +254,7 @@ </p> <p> -The module name, specified with <tt>%module</tt>, determines the name of various generated classes as discussed <a href=#module_packages_classes>later</a>. +The module name, specified with <tt>%module</tt>, determines the name of various generated classes as discussed <a href=#Java_module_packages_classes>later</a>. Note that the module name does not define a Java package and by default, the generated Java classes do not have a Java package. The <tt>-package</tt> option described below can specify a Java package name to use. </p> @@ -264,7 +264,7 @@ compiling and using the generated files. </p> -<H3><a name="java_commandline"></a>21.2.2 Additional Commandline Options</H3> +<H3><a name="Java_commandline"></a>21.2.2 Additional Commandline Options</H3> <p> @@ -301,7 +301,7 @@ Their use will become clearer by the time you have finished reading this section on SWIG and Java. </p> -<H3><a name="getting_right_headers"></a>21.2.3 Getting the right header files</H3> +<H3><a name="Java_getting_right_headers"></a>21.2.3 Getting the right header files</H3> <p> @@ -316,7 +316,7 @@ <p> The exact location may vary on your machine, but the above locations are typical. </p> -<H3><a name="compiling_dynamic"></a>21.2.4 Compiling a dynamic module</H3> +<H3><a name="Java_compiling_dynamic"></a>21.2.4 Compiling a dynamic module</H3> <p> @@ -344,15 +344,15 @@ <p> <b>Important</b> <br> If you are going to use optimisations turned on with gcc (for example -O2), ensure you also compile with -fno-strict-aliasing. The GCC optimisations have become -more aggressive from gcc-4.0 onwards and will result in code that fails with strict aliasing optimisations turned on. See the <a href="#typemaps_c_to_java_types">C/C++ to Java typemaps</a> section for more details. +more aggressive from gcc-4.0 onwards and will result in code that fails with strict aliasing optimisations turned on. See the <a href="#Java_typemaps_c_to_java_types">C/C++ to Java typemaps</a> section for more details. </p> <p> The name of the shared library output file is important. -If the name of your SWIG module is "<tt>example</tt>", the name of the corresponding shared library file should be "<tt>libexample.so</tt>" (or equivalent depending on your machine, see <a href="#dynamic_linking_problems">Dynamic linking problems</a> for more information). +If the name of your SWIG module is "<tt>example</tt>", the name of the corresponding shared library file should be "<tt>libexample.so</tt>" (or equivalent depending on your machine, see <a href="#Java_dynamic_linking_problems">Dynamic linking problems</a> for more information). The name of the module is specified using the <tt>%module</tt> directive or<tt> -module</tt> command line option.</p> -<H3><a name="using_module"></a>21.2.5 Using your module</H3> +<H3><a name="Java_using_module"></a>21.2.5 Using your module</H3> <p> @@ -387,7 +387,7 @@ If it doesn't work have a look at the following section which discusses problems loading the shared library. </p> -<H3><a name="dynamic_linking_problems"></a>21.2.6 Dynamic linking problems</H3> +<H3><a name="Java_dynamic_linking_problems"></a>21.2.6 Dynamic linking problems</H3> <p> @@ -474,7 +474,7 @@ </p> -<H3><a name="compilation_problems_cpp"></a>21.2.7 Compilation problems and compiling with C++</H3> +<H3><a name="Java_compilation_problems_cpp"></a>21.2.7 Compilation problems and compiling with C++</H3> <p> @@ -527,7 +527,7 @@ </p> -<H3><a name="building_windows"></a>21.2.8 Building on Windows</H3> +<H3><a name="Java_building_windows"></a>21.2.8 Building on Windows</H3> <p> @@ -536,7 +536,7 @@ This section covers the process of using SWIG with Microsoft Visual C++ 6 although the procedure may be similar with other compilers. In order for everything to work, you will need to have a JDK installed on your machine in order to read the JNI header files.</p> -<H4><a name="visual_studio"></a>21.2.8.1 Running SWIG from Visual Studio</H4> +<H4><a name="Java_visual_studio"></a>21.2.8.1 Running SWIG from Visual Studio</H4> <p> @@ -572,10 +572,10 @@ <p> The Java classes that SWIG output should also be compiled into .class files. To run the native code in the DLL (example.dll), make sure that it is in your path then run your Java program which uses it, as described in the previous section. -If the library fails to load have a look at <a href="#dynamic_linking_problems">Dynamic linking problems</a>. +If the library fails to load have a look at <a href="#Java_dynamic_linking_problems">Dynamic linking problems</a>. </p> -<H4><a name="nmake"></a>21.2.8.2 Using NMAKE</H4> +<H4><a name="Java_nmake"></a>21.2.8.2 Using NMAKE</H4> <p> @@ -634,7 +634,7 @@ </p> -<H2><a name="java_basic_tour"></a>21.3 A tour of basic C/C++ wrapping</H2> +<H2><a name="Java_basic_tour"></a>21.3 A tour of basic C/C++ wrapping</H2> <p> @@ -644,7 +644,7 @@ This section briefly covers the essential aspects of this wrapping. </p> -<H3><a name="module_packages_classes"></a>21.3.1 Modules, packages and generated Java classes</H3> +<H3><a name="Java_module_packages_classes"></a>21.3.1 Modules, packages and generated Java classes</H3> <p> @@ -680,7 +680,7 @@ SWIG won't create the directory, so make sure it exists beforehand. </p> -<H3><a name="functions"></a>21.3.2 Functions</H3> +<H3><a name="Java_functions"></a>21.3.2 Functions</H3> <p> @@ -714,7 +714,7 @@ </pre></div> -<H3><a name="global_variables"></a>21.3.3 Global variables</H3> +<H3><a name="Java_global_variables"></a>21.3.3 Global variables</H3> <p> @@ -801,7 +801,7 @@ </div> -<H3><a name="constants"></a>21.3.4 Constants</H3> +<H3><a name="Java_constants"></a>21.3.4 Constants</H3> <p> @@ -941,7 +941,7 @@ </p> -<... [truncated message content] |
From: <wsf...@us...> - 2010-03-06 23:23:49
|
Revision: 11924 http://swig.svn.sourceforge.net/swig/?rev=11924&view=rev Author: wsfulton Date: 2010-03-06 23:23:43 +0000 (Sat, 06 Mar 2010) Log Message: ----------- Fix numerous broken links reported by linkchecker Modified Paths: -------------- trunk/Doc/Manual/Allegrocl.html trunk/Doc/Manual/CSharp.html trunk/Doc/Manual/Chicken.html trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Customization.html trunk/Doc/Manual/Extending.html trunk/Doc/Manual/Guile.html trunk/Doc/Manual/Java.html trunk/Doc/Manual/Lisp.html trunk/Doc/Manual/Lua.html trunk/Doc/Manual/Modula3.html trunk/Doc/Manual/Mzscheme.html trunk/Doc/Manual/Php.html trunk/Doc/Manual/Preprocessor.html trunk/Doc/Manual/Python.html trunk/Doc/Manual/Ruby.html trunk/Doc/Manual/SWIG.html trunk/Doc/Manual/Sections.html Modified: trunk/Doc/Manual/Allegrocl.html =================================================================== --- trunk/Doc/Manual/Allegrocl.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Allegrocl.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -8,7 +8,7 @@ <body bgcolor="#ffffff"> -<H1><a name="Allegrocl_nn1"></a>17 SWIG and Allegro Common Lisp</H1> +<H1><a name="Allegrocl"></a>17 SWIG and Allegro Common Lisp</H1> <!-- INDEX --> <div class="sectiontoc"> <ul> Modified: trunk/Doc/Manual/CSharp.html =================================================================== --- trunk/Doc/Manual/CSharp.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/CSharp.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -54,7 +54,7 @@ The PInvoke interface has been chosen over Microsoft's Managed C++ interface as it is portable to both Microsoft Windows and non-Microsoft platforms. PInvoke is part of the ECMA/ISO C# specification. It is also better suited for robust production environments due to the Managed C++ flaw called the -<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vcconMixedDLLLoadingProblem.asp">Mixed DLL Loading Problem</a>. +<a href="http://msdn.microsoft.com/en-us/library/aa290048(VS.71).aspx">Mixed DLL Loading Problem</a>. SWIG C# works equally well on non-Microsoft operating systems such as Linux, Solaris and Apple Mac using <a href="http://www.mono-project.com/">Mono</a> and <a href="http://www.dotgnu.org/pnet.html">Portable.NET</a>. </p> Modified: trunk/Doc/Manual/Chicken.html =================================================================== --- trunk/Doc/Manual/Chicken.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Chicken.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -262,7 +262,7 @@ inside the %exception blocks. <code>SWIG_exception</code> will throw a list consisting of the code (as an integer) and the message. Both of these will throw an exception using <code>(abort)</code>, which can be handled by <code>(handle-exceptions)</code>. See - <a href="http://www.call-with-current-continuation.org/manual/Exceptions.html#Exceptions">Chicken manual on Exceptions</a> + the Chicken manual on Exceptions and <a href="http://srfi.schemers.org/srfi-12/srfi-12.html">SFRI-12</a>. Since the exception values are thrown directly, if <code>(condition-case)</code> is used to catch an exception the exception will come through in the <code>val ()</code> case. </p> @@ -416,8 +416,8 @@ </div> <p>This library can then be loaded by scheme code with the <code>(require 'modname)</code> function. -See <a href="http://www.call-with-current-continuation.org/manual/Loading-extension-libraries.html"> -Loading-extension-libraries</a> in the eval unit inside the CHICKEN manual for more information.</p> +See the +Loading-extension-libraries in the eval unit inside the CHICKEN manual for more information.</p> <p>Another alternative is to run SWIG normally and create a scheme file that contains <code>(declare (uses <i>modname</i>))</code> and then compile that file into the shared library as well. For example, inside the <tt>mod_load.scm</tt> file,</p> @@ -535,7 +535,7 @@ <p>In situations where a C or C++ function will assume ownership of a pointer, and thus chicken should no longer garbage collect it, SWIG provides the <code>DISOWN</code> input typemap. - After applying this typemap (see the <a href="Typemaps.html">Typemaps chapter</a> for more information on how to apply typemaps), + After applying this typemap (see the <a href="Typemaps.html#Typemaps">Typemaps chapter</a> for more information on how to apply typemaps), any pointer that gets passed in will no longer be garbage collected. An object is disowned by passing the <code>SWIG_POINTER_DISOWN</code> flag to <code>SWIG_ConvertPtr</code>. <b>Warning:</b> Since the lifetime of the object is now controlled by the underlying code, the object might Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Contents.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -122,7 +122,7 @@ <li><a href="SWIG.html#SWIG_nn2">Running SWIG</a> <ul> <li><a href="SWIG.html#SWIG_nn3">Input format</a> -<li><a href="SWIG.html#output">SWIG Output</a> +<li><a href="SWIG.html#SWIG_output">SWIG Output</a> <li><a href="SWIG.html#SWIG_nn5">Comments</a> <li><a href="SWIG.html#SWIG_nn6">C Preprocessor</a> <li><a href="SWIG.html#SWIG_nn7">SWIG Directives</a> @@ -1440,7 +1440,7 @@ </ul> <li><a href="Ruby.html#Ruby_nn53">Advanced Topics</a> <ul> -<li><a href="Ruby.html#Ruby_nn54">Operator overloading</a> +<li><a href="Ruby.html#Ruby_operator_overloading">Operator overloading</a> <li><a href="Ruby.html#Ruby_nn55">Creating Multi-Module Packages</a> <li><a href="Ruby.html#Ruby_nn56">Specifying Mixin Modules</a> </ul> @@ -1588,7 +1588,7 @@ <li><a href="Extending.html#Extending_nn36">Entry point to code generation</a> <li><a href="Extending.html#Extending_nn37">Module I/O and wrapper skeleton</a> <li><a href="Extending.html#Extending_nn38">Low-level code generators</a> -<li><a href="Extending.html#Extending_nn39">Configuration files</a> +<li><a href="Extending.html#Extending_configuration_files">Configuration files</a> <li><a href="Extending.html#Extending_nn40">Runtime support</a> <li><a href="Extending.html#Extending_nn41">Standard library files</a> <li><a href="Extending.html#Extending_nn42">User examples</a> Modified: trunk/Doc/Manual/Customization.html =================================================================== --- trunk/Doc/Manual/Customization.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Customization.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -773,7 +773,7 @@ </div> <p> -The name matching rules outlined in the <a href="SWIGPlus.html#ambiguity_resolution_renaming">Ambiguity resolution and renaming</a> +The name matching rules outlined in the <a href="SWIGPlus.html#SWIGPlus_ambiguity_resolution_renaming">Ambiguity resolution and renaming</a> section applies to all <tt>%feature</tt> directives. In fact the the <tt>%rename</tt> directive is just a special form of <tt>%feature</tt>. The matching rules mean that features are very flexible and can be applied with Modified: trunk/Doc/Manual/Extending.html =================================================================== --- trunk/Doc/Manual/Extending.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Extending.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -54,7 +54,7 @@ <li><a href="#Extending_nn36">Entry point to code generation</a> <li><a href="#Extending_nn37">Module I/O and wrapper skeleton</a> <li><a href="#Extending_nn38">Low-level code generators</a> -<li><a href="#Extending_nn39">Configuration files</a> +<li><a href="#Extending_configuration_files">Configuration files</a> <li><a href="#Extending_nn40">Runtime support</a> <li><a href="#Extending_nn41">Standard library files</a> <li><a href="#Extending_nn42">User examples</a> @@ -3049,7 +3049,7 @@ </p> -<H3><a name="Extending_nn39"></a>35.10.8 Configuration files</H3> +<H3><a name="Extending_configuration_files"></a>35.10.8 Configuration files</H3> <!-- please report bugs in this section to ttn --> @@ -3246,7 +3246,7 @@ <p> By default, all of the examples are built and run when the user types <tt>make check</tt>. To ensure that your examples are automatically run -during this process, see the section on <a href="#n37a">configuration +during this process, see the section on <a href="#Extending_configuration_files">configuration files</a>. </p> Modified: trunk/Doc/Manual/Guile.html =================================================================== --- trunk/Doc/Manual/Guile.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Guile.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -69,7 +69,7 @@ pointers and have completely different run-time code. See below for more info. <p>The GH interface to guile is deprecated. Read more about why in the -<a href="http://www.gnu.org/software/guile/docs/guile-ref/GH-deprecation.html">Guile manual</a>. +<a href="http://www.gnu.org/software/guile/docs/docs-1.6/guile-ref/GH.html#GH">Guile manual</a>. The idea of the GH interface was to provide a high level API that other languages and projects could adopt. This was a good idea, but didn't pan out well for general development. But for the specific, minimal uses that the SWIG typemaps put the GH interface to use is ideal for Modified: trunk/Doc/Manual/Java.html =================================================================== --- trunk/Doc/Manual/Java.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Java.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -254,7 +254,7 @@ </p> <p> -The module name, specified with <tt>%module</tt>, determines the name of various generated classes as discussed <a href=#Java_module_packages_classes>later</a>. +The module name, specified with <tt>%module</tt>, determines the name of various generated classes as discussed <a href="#Java_module_packages_classes">later</a>. Note that the module name does not define a Java package and by default, the generated Java classes do not have a Java package. The <tt>-package</tt> option described below can specify a Java package name to use. </p> @@ -3894,7 +3894,7 @@ <p> The examples above first use the C JNI calling syntax then the C++ JNI calling syntax. The C++ calling syntax will not compile as C and also vice versa. -It is however possible to write JNI calls which will compile under both C and C++ and is covered in the <a href="#typemaps_for_c_and_c++">Typemaps for both C and C++ compilation</a> section. +It is however possible to write JNI calls which will compile under both C and C++ and is covered in the <a href="#Java_typemaps_for_c_and_cpp">Typemaps for both C and C++ compilation</a> section. </p> <p> @@ -5126,11 +5126,11 @@ </p> <p> -The "jtype" typemap has the optional 'nopgcpp' attribute which can be used to suppress the generation of the <a href="Java_pgcpp">premature garbage collection prevention parameter</a>. +The "jtype" typemap has the optional 'nopgcpp' attribute which can be used to suppress the generation of the <a href="#Java_pgcpp">premature garbage collection prevention parameter</a>. </p> <p> -The "javain" typemap has the optional 'pre', 'post' and 'pgcppname' attributes. These are used for generating code before and after the JNI call in the proxy class or module class. The 'pre' attribute contains code that is generated before the JNI call and the 'post' attribute contains code generated after the JNI call. The 'pgcppname' attribute is used to change the <a href="Java_pgcpp">premature garbage collection prevention parameter</a> name passed to the JNI function. This is sometimes needed when the 'pre' typemap creates a temporary variable which is then passed to the JNI function. +The "javain" typemap has the optional 'pre', 'post' and 'pgcppname' attributes. These are used for generating code before and after the JNI call in the proxy class or module class. The 'pre' attribute contains code that is generated before the JNI call and the 'post' attribute contains code generated after the JNI call. The 'pgcppname' attribute is used to change the <a href="#Java_pgcpp">premature garbage collection prevention parameter</a> name passed to the JNI function. This is sometimes needed when the 'pre' typemap creates a temporary variable which is then passed to the JNI function. </p> <p> Modified: trunk/Doc/Manual/Lisp.html =================================================================== --- trunk/Doc/Manual/Lisp.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Lisp.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -6,7 +6,7 @@ </head> <body bgcolor="#ffffff"> -<H1><a name="Lisp_nn1"></a>22 SWIG and Common Lisp</H1> +<H1><a name="Lisp"></a>22 SWIG and Common Lisp</H1> <!-- INDEX --> <div class="sectiontoc"> <ul> @@ -47,7 +47,7 @@ <p> Allegro Common Lisp support in SWIG has been updated to include support for both C and C++. You can read about the interface - <a href="Allegrocl.html#Allegrocl_nn1">here</a> + <a href="Allegrocl.html#Allegrocl">here</a> </p> <H2><a name="Lisp_nn3"></a>22.2 Common Foreign Function Interface(CFFI)</H2> @@ -96,14 +96,14 @@ <tr> <td>-generate-typedef</td> -<td>If this option is given then defctype will be used to generate<br\> +<td>If this option is given then defctype will be used to generate<br/> shortcuts according to the typedefs in the input. </td> </tr> <tr> <td>-[no]cwrap</td> -<td>Turn on or turn off generation of an intermediate C file when<br\> +<td>Turn on or turn off generation of an intermediate C file when<br/> creating a C interface. By default this is only done for C++ code. </td> </tr> Modified: trunk/Doc/Manual/Lua.html =================================================================== --- trunk/Doc/Manual/Lua.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Lua.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -6,7 +6,7 @@ </head> <body bgcolor="#ffffff"> -<H1><a name="Lua_nn1"></a>23 SWIG and Lua</H1> +<H1><a name="Lua"></a>23 SWIG and Lua</H1> <!-- INDEX --> <div class="sectiontoc"> <ul> @@ -1210,7 +1210,7 @@ <p>There are basically two ways that SWIG can deal with this. The first way, uses the <tt><carrays.i></tt> library to create an array in C/C++ then this can be filled within Lua and passed into the function. It works, but its a bit tedious. -More details can be found in the <a href="Library.html#Library_nn5">carrays.i</a> documention.</p> +More details can be found in the <a href="Library.html#Library_carrays">carrays.i</a> documention.</p> <p>The second and more intuitive way, would be to pass a Lua table directly into the function, and have SWIG automatically convert between Lua-table and C-array. Within the <tt><typemaps.i></tt> file there are typemaps ready written to perform this task. To use them is again a matter of using %appy in the correct manner.</p> Modified: trunk/Doc/Manual/Modula3.html =================================================================== --- trunk/Doc/Manual/Modula3.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Modula3.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -54,7 +54,7 @@ <a href="SWIG.html#SWIG">basics</a> of SWIG, especially -<a href="Typemaps.html">typemaps</a>. +<a href="Typemaps.html#Typemaps">typemaps</a>. </p> <H2><a name="Modula3_modula3_overview"></a>24.1 Overview</H2> @@ -1022,7 +1022,7 @@ This is necessary in the cases where it was defined by a non-trivial C expression. This feature is used by the - <tt>-generateconst</tt> <a href="#options">option</a>. + <tt>-generateconst</tt> <a href="#Modula3_commandline">option</a>. In future it may be generalized to other kind of values such as strings. </td> Modified: trunk/Doc/Manual/Mzscheme.html =================================================================== --- trunk/Doc/Manual/Mzscheme.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Mzscheme.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -8,7 +8,7 @@ <body bgcolor="#ffffff"> -<H1><a name="MzScheme"></a>25 SWIG and MzScheme</H1> +<H1><a name="Mzscheme"></a>25 SWIG and MzScheme</H1> <!-- INDEX --> <div class="sectiontoc"> <ul> Modified: trunk/Doc/Manual/Php.html =================================================================== --- trunk/Doc/Manual/Php.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Php.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -413,7 +413,7 @@ will generate dispatch functions which will use <tt>%typecheck</tt> typemaps to allow overloading. This dispatch function's operation and precedence is described in <a -href="TypemapsSWIGPlus.html#SWIGPlus_overloaded_methods">Wrapping +href="SWIGPlus.html#SWIGPlus_overloaded_methods">Wrapping Overloaded Functions and Methods</a>. </p> Modified: trunk/Doc/Manual/Preprocessor.html =================================================================== --- trunk/Doc/Manual/Preprocessor.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Preprocessor.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -81,7 +81,7 @@ C++ classes that might be used as base-classes for class declarations in the interface. The use of <tt>%import</tt> is also important when SWIG is used to generate extensions as a collection of related modules. This is an advanced topic and is described -in later in the <a href="Modules.html">Working with Modules</a> chapter. +in later in the <a href="Modules.html#Modules">Working with Modules</a> chapter. </p> <P> @@ -377,7 +377,7 @@ <p> -<a href="Typemaps.html">Typemaps</a> support a special attribute called <tt>noblock</tt> where the { ... } delimiters can be used, +<a href="Typemaps.html#Typemaps">Typemaps</a> support a special attribute called <tt>noblock</tt> where the { ... } delimiters can be used, but the delimiters are not actually generated into the code. The effect is then similar to using "" or %{ %} delimiters but the code <b>is</b> run through the preprocessor. For example: </p> Modified: trunk/Doc/Manual/Python.html =================================================================== --- trunk/Doc/Manual/Python.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Python.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -2513,7 +2513,7 @@ This new-style class system offers many enhancements including static member functions, properties (managed attributes), and class methods. Details about all of these changes can be found on <a -href="//www.python.org">www.python.org</a> and is not repeated here. +href="http://www.python.org">www.python.org</a> and is not repeated here. </p> <p> Modified: trunk/Doc/Manual/Ruby.html =================================================================== --- trunk/Doc/Manual/Ruby.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Ruby.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -142,7 +142,7 @@ </ul> <li><a href="#Ruby_nn53">Advanced Topics</a> <ul> -<li><a href="#Ruby_nn54">Operator overloading</a> +<li><a href="#Ruby_operator_overloading">Operator overloading</a> <li><a href="#Ruby_nn55">Creating Multi-Module Packages</a> <li><a href="#Ruby_nn56">Specifying Mixin Modules</a> </ul> @@ -1317,7 +1317,7 @@ <p> If you want to set an array member, you will need to supply a -"memberin" typemap described in the <a href="#ruby_cpp_smart_pointers">section on typemaps</a>. +"memberin" typemap described in the <a href="#Ruby_memberin_typemap">section on typemaps</a>. As a special case, SWIG does generate code to set array members of type <tt>char</tt> (allowing you to store a Ruby string in the structure). </p> @@ -1956,7 +1956,7 @@ <p> More details about wrapping C++ operators into Ruby operators -is discussed in the <a href="#ruby_operator_overloading">section +is discussed in the <a href="#Ruby_operator_overloading">section on operator overloading</a>. </p> @@ -2877,7 +2877,7 @@ <p> SWIG's Ruby module supports cross-language polymorphism (a.k.a. the "directors" feature) similar to that for SWIG's Python -module. Rather than duplicate the information presented in the <a href="Ruby">Python</a> chapter, this +module. Rather than duplicate the information presented in the <a href="Python.html#Python">Python</a> chapter, this section just notes the differences that you need to be aware of when using this feature with Ruby. </p> @@ -6089,7 +6089,7 @@ -<p> See <a href="http://www.swig.org/Doc1.3/SWIGDocumentation.html#Customization_ownership">Object +<p> See <a href="Customization.html#Customization_ownership">Object ownership and %newobject</a> for further details.</p> @@ -7099,8 +7099,8 @@ <p> When you write a typemap, you usually have to work directly with Ruby objects. The following functions may prove to be useful. -(These functions plus many more can be found in <a href="http://www.rubycentral.com/book"><em>Programming -Ruby</em></a>, by David Thomas and Andrew Hunt.) </p> +(These functions plus many more can be found in <em>Programming +Ruby</em> book, by David Thomas and Andrew Hunt.) </p> <p>In addition, we list equivalent functions that SWIG defines, which provide a language neutral conversion (these functions are defined for each swig language supported). If you are trying to create a swig @@ -8510,7 +8510,7 @@ <H2><a name="Ruby_nn53"></a>32.9 Advanced Topics</H2> -<H3><a name="Ruby_nn54"></a>32.9.1 Operator overloading</H3> +<H3><a name="Ruby_operator_overloading"></a>32.9.1 Operator overloading</H3> <p> SWIG allows operator overloading with, by using the <tt>%extend</tt> @@ -9530,7 +9530,7 @@ <H3><a name="Ruby_nn55"></a>32.9.2 Creating Multi-Module Packages</H3> -<p> The chapter on <a href="Modules.html">Working +<p> The chapter on <a href="Modules.html#Modules">Working with Modules</a> discusses the basics of creating multi-module extensions with SWIG, and in particular the considerations for sharing runtime type information among the different modules. </p> @@ -10050,7 +10050,7 @@ <p>In this case, the default SWIG behavior for calling member functions is incorrect. The Ruby object should assume ownership of the returned object. This can be done by using the %newobject directive. -See <a href="file:///d:/msys/1.0/src/SWIG/Doc/Manual/Customization.html#Customization_ownership"> +See <a href="Customization.html#Customization_ownership"> Object ownership and %newobject</a> for more information. </p> Modified: trunk/Doc/Manual/SWIG.html =================================================================== --- trunk/Doc/Manual/SWIG.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/SWIG.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -13,7 +13,7 @@ <li><a href="#SWIG_nn2">Running SWIG</a> <ul> <li><a href="#SWIG_nn3">Input format</a> -<li><a href="#output">SWIG Output</a> +<li><a href="#SWIG_output">SWIG Output</a> <li><a href="#SWIG_nn5">Comments</a> <li><a href="#SWIG_nn6">C Preprocessor</a> <li><a href="#SWIG_nn7">SWIG Directives</a> @@ -193,7 +193,7 @@ used in input files to parser generation tools such as yacc or bison. </p> -<H3><a name="output"></a>5.1.2 SWIG Output</H3> +<H3><a name="SWIG_output"></a>5.1.2 SWIG Output</H3> <p> Modified: trunk/Doc/Manual/Sections.html =================================================================== --- trunk/Doc/Manual/Sections.html 2010-03-06 23:22:40 UTC (rev 11923) +++ trunk/Doc/Manual/Sections.html 2010-03-06 23:23:43 UTC (rev 11924) @@ -41,13 +41,13 @@ <H3>Language Module Documentation</H3> <ul> -<li><a href="Allegrocl.html#Allegrocl_nn1">Allegro CL support</a></li> +<li><a href="Allegrocl.html#Allegrocl">Allegro CL support</a></li> <li><a href="CSharp.html#CSharp">C# support</a></li> <li><a href="Chicken.html#Chicken">Chicken support</a></li> <li><a href="Guile.html#Guile">Guile support</a></li> <li><a href="Java.html#Java">Java support</a></li> -<li><a href="Lua.html#Lua_nn1">Lua support</a></li> -<li><a href="Lisp.html#Lisp_nn1">Common Lisp support</a></li> +<li><a href="Lua.html#Lua">Lua support</a></li> +<li><a href="Lisp.html#Lisp">Common Lisp support</a></li> <li><a href="Modula3.html#Modula3">Modula3 support</a></li> <li><a href="Mzscheme.html#MzScheme">MzScheme support</a></li> <li><a href="Ocaml.html#Ocaml">Ocaml support</a></li> @@ -78,9 +78,5 @@ chapter above if you are using this feature. </p> -<ul> -<li><a href="Advanced.html#Advanced">Advanced topics</a> (see <a href="Modules.html#Modules">Modules</a> for updated information).</li> -</ul> - </body> </html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ol...@us...> - 2010-05-23 03:43:38
|
Revision: 12040 http://swig.svn.sourceforge.net/swig/?rev=12040&view=rev Author: olly Date: 2010-05-23 03:43:31 +0000 (Sun, 23 May 2010) Log Message: ----------- Fix more doubled word typos Modified Paths: -------------- trunk/Doc/Manual/Allegrocl.html trunk/Doc/Manual/CSharp.html trunk/Doc/Manual/Customization.html trunk/Doc/Manual/Introduction.html trunk/Doc/Manual/Java.html trunk/Doc/Manual/Lua.html trunk/Doc/Manual/Octave.html trunk/Doc/Manual/Pike.html trunk/Doc/Manual/Python.html trunk/Doc/Manual/Ruby.html trunk/Doc/Manual/SWIG.html trunk/Doc/Manual/Windows.html Modified: trunk/Doc/Manual/Allegrocl.html =================================================================== --- trunk/Doc/Manual/Allegrocl.html 2010-05-23 03:32:20 UTC (rev 12039) +++ trunk/Doc/Manual/Allegrocl.html 2010-05-23 03:43:31 UTC (rev 12040) @@ -1777,7 +1777,7 @@ </div> <p> - These three typemaps are specifically employed by the the + These three typemaps are specifically employed by the Allegro CL interface generator. SWIG also implements a number of other typemaps that can be used for generating code in the C/C++ wrappers. You can read about Modified: trunk/Doc/Manual/CSharp.html =================================================================== --- trunk/Doc/Manual/CSharp.html 2010-05-23 03:32:20 UTC (rev 12039) +++ trunk/Doc/Manual/CSharp.html 2010-05-23 03:43:31 UTC (rev 12040) @@ -511,7 +511,7 @@ array parameter as input, output, or both. When the function is invoked, the CLR allocates a separate chunk of memory as big as the given managed array, which is automatically released at the end of the function call. If the array parameter is marked as being input, the content of the managed array is copied into this buffer when the call is made. Correspondingly, if the array parameter is marked as being output, the contents of the reserved buffer are copied -back into the managed array after the call returns. A pointer to to this buffer +back into the managed array after the call returns. A pointer to this buffer is passed to the native function. </p> Modified: trunk/Doc/Manual/Customization.html =================================================================== --- trunk/Doc/Manual/Customization.html 2010-05-23 03:32:20 UTC (rev 12039) +++ trunk/Doc/Manual/Customization.html 2010-05-23 03:43:31 UTC (rev 12040) @@ -775,7 +775,7 @@ <p> The name matching rules outlined in the <a href="SWIGPlus.html#SWIGPlus_ambiguity_resolution_renaming">Ambiguity resolution and renaming</a> section applies to all <tt>%feature</tt> directives. -In fact the the <tt>%rename</tt> directive is just a special form of <tt>%feature</tt>. +In fact the <tt>%rename</tt> directive is just a special form of <tt>%feature</tt>. The matching rules mean that features are very flexible and can be applied with pinpoint accuracy to specific declarations if needed. Additionally, if no declaration name is given, a global feature is said to be defined. Modified: trunk/Doc/Manual/Introduction.html =================================================================== --- trunk/Doc/Manual/Introduction.html 2010-05-23 03:32:20 UTC (rev 12039) +++ trunk/Doc/Manual/Introduction.html 2010-05-23 03:43:31 UTC (rev 12040) @@ -365,7 +365,7 @@ <p> SWIG is a command line tool and as such can be incorporated into any build system that supports invoking external tools/compilers. -SWIG is most commonly invoked from within a Makefile, but is also known to be invoked from from popular IDEs such as +SWIG is most commonly invoked from within a Makefile, but is also known to be invoked from popular IDEs such as Microsoft Visual Studio. </p> Modified: trunk/Doc/Manual/Java.html =================================================================== --- trunk/Doc/Manual/Java.html 2010-05-23 03:32:20 UTC (rev 12039) +++ trunk/Doc/Manual/Java.html 2010-05-23 03:43:31 UTC (rev 12040) @@ -1094,7 +1094,7 @@ </p> <p> -Typesafe enums have their advantages over using plain integers in that they they can be used in a typesafe manner. +Typesafe enums have their advantages over using plain integers in that they can be used in a typesafe manner. However, there are limitations. For example, they cannot be used in switch statements and serialization is an issue. Please look at the following references for further information: @@ -2270,7 +2270,7 @@ </div> <p> -All the methods in the intermediary JNI class will then not be be callable outside of the package as the method modifiers have been changed from public access to default access. This is useful if you want to prevent users calling these low level functions. +All the methods in the intermediary JNI class will then not be callable outside of the package as the method modifiers have been changed from public access to default access. This is useful if you want to prevent users calling these low level functions. </p> <H3><a name="Java_module_class"></a>21.4.2 The Java module class</H3> @@ -2758,7 +2758,7 @@ } </pre></div> <p>Although this usually works, the documentation doesn't guarantee that <tt>runFinalization()</tt> will actually call the finalizers. -As the the shutdown hook is guaranteed you could also make a JNI call to clean up any resources that are being tracked by the C/C++ code.</p> +As the shutdown hook is guaranteed you could also make a JNI call to clean up any resources that are being tracked by the C/C++ code.</p> </li> <li> @@ -4521,7 +4521,7 @@ <p> This section describes how you can modify SWIG's default wrapping behavior for various C/C++ datatypes using the <tt>%typemap</tt> directive. -You are advised to be familiar with the the material in the "<a href="Typemaps.html#Typemaps">Typemaps</a>" chapter. +You are advised to be familiar with the material in the "<a href="Typemaps.html#Typemaps">Typemaps</a>" chapter. While not absolutely essential knowledge, this section assumes some familiarity with the Java Native Interface (JNI). JNI documentation can be consulted either online at <a href="http://java.sun.com">Sun's Java web site</a> or from a good JNI book. The following two books are recommended:</p> Modified: trunk/Doc/Manual/Lua.html =================================================================== --- trunk/Doc/Manual/Lua.html 2010-05-23 03:32:20 UTC (rev 12039) +++ trunk/Doc/Manual/Lua.html 2010-05-23 03:43:31 UTC (rev 12040) @@ -334,7 +334,7 @@ %mutable; </pre></div> <p> -SWIG will allow the the reading of <tt>Foo</tt> but when a set attempt is made, an error function will be called. +SWIG will allow the reading of <tt>Foo</tt> but when a set attempt is made, an error function will be called. </p> <div class="targetlang"><pre> > print(e.Foo) -- reading works ok @@ -1099,7 +1099,7 @@ </pre></div> <p> -Note: is is also possible (though tedious) to have a function throw several different kinds of exceptions. To process this +Note: it is also possible (though tedious) to have a function throw several different kinds of exceptions. To process this will require a pcall, followed by a set of if statements checking the type of the error. </p> <p> Modified: trunk/Doc/Manual/Octave.html =================================================================== --- trunk/Doc/Manual/Octave.html 2010-05-23 03:32:20 UTC (rev 12039) +++ trunk/Doc/Manual/Octave.html 2010-05-23 03:43:31 UTC (rev 12040) @@ -239,7 +239,7 @@ </pre></div> <p> - SWIG will allow the the reading of <tt>Foo</tt> but when a set attempt is made, an error function will be called. + SWIG will allow the reading of <tt>Foo</tt> but when a set attempt is made, an error function will be called. </p> <div class="targetlang"><pre>octave:1> example Modified: trunk/Doc/Manual/Pike.html =================================================================== --- trunk/Doc/Manual/Pike.html 2010-05-23 03:32:20 UTC (rev 12039) +++ trunk/Doc/Manual/Pike.html 2010-05-23 03:43:31 UTC (rev 12040) @@ -172,7 +172,7 @@ <p> -Global variables are currently wrapped as a pair of of functions, one to get +Global variables are currently wrapped as a pair of functions, one to get the current value of the variable and another to set it. For example, the declaration </p> Modified: trunk/Doc/Manual/Python.html =================================================================== --- trunk/Doc/Manual/Python.html 2010-05-23 03:32:20 UTC (rev 12039) +++ trunk/Doc/Manual/Python.html 2010-05-23 03:43:31 UTC (rev 12040) @@ -1282,7 +1282,7 @@ <p> This object is actually a Python instance that has been wrapped around a pointer to the low-level C structure. This instance doesn't actually do anything--it just serves as a proxy. -The pointer to the C object can be found in the the <tt>.this</tt> +The pointer to the C object can be found in the <tt>.this</tt> attribute. For example: </p> @@ -3101,7 +3101,7 @@ <p>Sometimes you may want to replace or modify the wrapper function that SWIG creates in the proxy <tt>.py</tt> file. The Python module -in SWIG provides some features that enable you do do this. First, to +in SWIG provides some features that enable you to do this. First, to entirely replace a proxy function you can use <tt>%feature("shadow")</tt>. For example:</p> Modified: trunk/Doc/Manual/Ruby.html =================================================================== --- trunk/Doc/Manual/Ruby.html 2010-05-23 03:32:20 UTC (rev 12039) +++ trunk/Doc/Manual/Ruby.html 2010-05-23 03:43:31 UTC (rev 12040) @@ -10204,7 +10204,7 @@ -<p>After the the garbage collector runs, as a result of our call +<p>After the garbage collector runs, as a result of our call to <tt>GC.start</tt>, calling<tt>tiger2.get_name()</tt> causes a segmentation fault. The problem is that when <tt>tiger1</tt> is garbage collected, it frees the underlying C++ object. Thus, when <tt>tiger2</tt> @@ -10649,7 +10649,7 @@ function which in turn will call a function called Init_stack or similar. This function will store a pointer to the location where -the stack points at at that point in time.</p> +the stack points at that point in time.</p> Modified: trunk/Doc/Manual/SWIG.html =================================================================== --- trunk/Doc/Manual/SWIG.html 2010-05-23 03:32:20 UTC (rev 12039) +++ trunk/Doc/Manual/SWIG.html 2010-05-23 03:43:31 UTC (rev 12040) @@ -92,7 +92,7 @@ <p> -To run SWIG, use the <tt>swig</tt> command with options options and a filename like this: +To run SWIG, use the <tt>swig</tt> command with options and a filename like this: </p> <div class="shell"><pre> Modified: trunk/Doc/Manual/Windows.html =================================================================== --- trunk/Doc/Manual/Windows.html 2010-05-23 03:32:20 UTC (rev 12039) +++ trunk/Doc/Manual/Windows.html 2010-05-23 03:43:31 UTC (rev 12040) @@ -272,7 +272,7 @@ <ul> <li>Answer y to the "do you wish to continue with the post install?"</li> <li>Answer y to the "do you have MinGW installed?"</li> - <li>Type in the the folder in which you installed MinGW (C:/MinGW is default)</li> + <li>Type in the folder in which you installed MinGW (C:/MinGW is default)</li> </ul> </li> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-05-28 22:46:56
|
Revision: 12065 http://swig.svn.sourceforge.net/swig/?rev=12065&view=rev Author: wsfulton Date: 2010-05-28 22:46:50 +0000 (Fri, 28 May 2010) Log Message: ----------- chapter numbering update Modified Paths: -------------- trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Modula3.html trunk/Doc/Manual/Typemaps.html Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2010-05-28 22:24:11 UTC (rev 12064) +++ trunk/Doc/Manual/Contents.html 2010-05-28 22:46:50 UTC (rev 12065) @@ -351,8 +351,8 @@ <li><a href="Typemaps.html#Typemaps_nn17">Basic matching rules</a> <li><a href="Typemaps.html#Typemaps_typedef_reductions">Typedef reductions matching</a> <li><a href="Typemaps.html#Typemaps_nn19">Default typemap matching rules</a> -<li><a href="Typemaps.html#Typemaps_matching_template_comparison">Matching comparison with C++ templates</a> <li><a href="Typemaps.html#Typemaps_multi_argument_typemaps_patterns">Multi-arguments typemaps</a> +<li><a href="Typemaps.html#Typemaps_matching_template_comparison">Matching rules compared to C++ templates</a> <li><a href="Typemaps.html#Typemaps_debugging_search">Debugging typemap pattern matching</a> </ul> <li><a href="Typemaps.html#Typemaps_nn21">Code generation rules</a> @@ -963,10 +963,7 @@ <ul> <li><a href="Modula3.html#Modula3_modula3_overview">Overview</a> <ul> -<li><a href="Modula3.html#Modula3_whyscripting">Why not scripting ?</a> -<li><a href="Modula3.html#Modula3_whymodula3">Why Modula-3 ?</a> -<li><a href="Modula3.html#Modula3_whycpp">Why C / C++ ?</a> -<li><a href="Modula3.html#Modula3_whyswig">Why SWIG ?</a> +<li><a href="Modula3.html#Modula3_motivation">Motivation</a> </ul> <li><a href="Modula3.html#Modula3_conception">Conception</a> <ul> Modified: trunk/Doc/Manual/Modula3.html =================================================================== --- trunk/Doc/Manual/Modula3.html 2010-05-28 22:24:11 UTC (rev 12064) +++ trunk/Doc/Manual/Modula3.html 2010-05-28 22:46:50 UTC (rev 12065) @@ -56,6 +56,7 @@ <H2><a name="Modula3_modula3_overview"></a>24.1 Overview</H2> + <p> Modula-3 is a compiled language in the tradition of Niklaus Wirth's Modula 2, which is in turn a successor to Pascal. @@ -83,8 +84,9 @@ </li> </ol> -<H3><a name="Modula3_motivation"></a>24.1.3 Motivation</H3> +<H3><a name="Modula3_motivation"></a>24.1.1 Motivation</H3> + <p> Although it is possible to write Modula-3 code that performs as well as C/C++ most existing libraries are not written in Modula-3 but in C or C++, and Modified: trunk/Doc/Manual/Typemaps.html =================================================================== --- trunk/Doc/Manual/Typemaps.html 2010-05-28 22:24:11 UTC (rev 12064) +++ trunk/Doc/Manual/Typemaps.html 2010-05-28 22:46:50 UTC (rev 12065) @@ -33,8 +33,8 @@ <li><a href="#Typemaps_nn17">Basic matching rules</a> <li><a href="#Typemaps_typedef_reductions">Typedef reductions matching</a> <li><a href="#Typemaps_nn19">Default typemap matching rules</a> -<li><a href="#Typemaps_matching_template_comparison">Matching comparison with C++ templates</a> <li><a href="#Typemaps_multi_argument_typemaps_patterns">Multi-arguments typemaps</a> +<li><a href="#Typemaps_matching_template_comparison">Matching rules compared to C++ templates</a> <li><a href="#Typemaps_debugging_search">Debugging typemap pattern matching</a> </ul> <li><a href="#Typemaps_nn21">Code generation rules</a> @@ -1418,7 +1418,7 @@ simpler scheme to match the current C++ class template partial specialization matching rules. </p> -<H3><a name="Typemaps_multi_argument_typemaps_patterns"></a>10.3.5 Multi-arguments typemaps</H3> +<H3><a name="Typemaps_multi_argument_typemaps_patterns"></a>10.3.4 Multi-arguments typemaps</H3> <p> @@ -1448,8 +1448,9 @@ </p> -<H3><a name="Typemaps_matching_template_comparison"></a>10.3.4 Matching rules compared to C++ templates</H3> +<H3><a name="Typemaps_matching_template_comparison"></a>10.3.5 Matching rules compared to C++ templates</H3> + <p> For those intimately familiar with C++ templates, a comparison of the typemap matching rules and template type deduction is interesting. The two areas considered are firstly the default typemaps and their similarities to partial template specialization and secondly, non-default typemaps and their similarities to full template specialization. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-05-28 23:53:55
|
Revision: 12067 http://swig.svn.sourceforge.net/swig/?rev=12067&view=rev Author: wsfulton Date: 2010-05-28 23:53:49 +0000 (Fri, 28 May 2010) Log Message: ----------- Update docs for first 2.0 release Modified Paths: -------------- trunk/Doc/Manual/Guile.html trunk/Doc/Manual/Preface.html trunk/Doc/Manual/Sections.html trunk/Doc/Manual/Windows.html Modified: trunk/Doc/Manual/Guile.html =================================================================== --- trunk/Doc/Manual/Guile.html 2010-05-28 23:42:53 UTC (rev 12066) +++ trunk/Doc/Manual/Guile.html 2010-05-28 23:53:49 UTC (rev 12067) @@ -767,8 +767,6 @@ (use-modules ((Test) #:renamer (symbol-prefix-proc 'goops:))) </pre></div> -<p>TODO: Renaming class name prefixes?</p> - <H3><a name="Guile_nn21"></a>20.10.2 Linking</H3> Modified: trunk/Doc/Manual/Preface.html =================================================================== --- trunk/Doc/Manual/Preface.html 2010-05-28 23:42:53 UTC (rev 12066) +++ trunk/Doc/Manual/Preface.html 2010-05-28 23:53:49 UTC (rev 12067) @@ -49,31 +49,19 @@ variety of applications--in fact almost anything where C/C++ programming is involved. -<H2><a name="Preface_nn3"></a>1.2 Special Introduction for Version 1.3</H2> - - -<p> -Since SWIG was released in 1996, its user base and applicability has -continued to grow. Although its rate of development has varied, an -active development effort has continued to make improvements to the -system. Today, nearly a dozen developers are working to create -SWIG-2.0---a system that aims to provide wrapping support for nearly -all of the ANSI C++ standard and approximately ten target languages -including Guile, Java, Mzscheme, Ocaml, Perl, Pike, PHP, Python, Ruby, -and Tcl. -</p> - <H2><a name="Preface_nn4"></a>1.3 SWIG Versions</H2> <p> -For several years, the most stable version of SWIG has been release -1.1p5. Starting with version 1.3, a new version numbering scheme has -been adopted. Odd version numbers (1.3, 1.5, etc.) represent -development versions of SWIG. Even version numbers (1.4, 1.6, etc.) -represent stable releases. Currently, developers are working to -create a stable SWIG-2.0 release. Don't let the development status -of SWIG-1.3 scare you---it is much more stable (and capable) than SWIG-1.1p5. +In the late 1990's, the most stable version of SWIG was release +1.1p5. Versions 1.3.x were officially development versions and these were released +over a period of 10 years starting from the year 2000. The final version in the 1.3.x +series was 1.3.40, but in truth the 1.3.x series had been stable for many years. +An official stable version was released along with the decision to make SWIG +license changes and this gave rise to version 2.0.0 in 2010. The license was clarified +so that the code that SWIG generated could be distributed +under license terms of the user's choice/requirements and at the same time the SWIG +source was placed under the GNU General Public License version 3. </p> <H2><a name="Preface_nn5"></a>1.4 SWIG resources</H2> @@ -106,7 +94,7 @@ </p> <p> -SVN access to the latest version of SWIG is also available. More information +Subversion access to the latest version of SWIG is also available. More information about this can be obtained at: </p> @@ -132,7 +120,7 @@ </p> <p> -Recent SWIG releases have become significantly more capable in +Over time SWIG releases have become significantly more capable in their C++ handling--especially support for advanced features like namespaces, overloaded operators, and templates. Whenever possible, this manual tries to cover the technicalities of this interface. @@ -149,8 +137,7 @@ devoted to specific SWIG language modules and are self contained. Thus, if you are using SWIG to build Python interfaces, you can probably skip to that chapter and find almost everything you need -to know. Caveat: we are currently working on a documentation rewrite and many -of the older language module chapters are still somewhat out of date. +to know. </p> <H2><a name="Preface_nn8"></a>1.7 How to avoid reading the manual</H2> @@ -165,27 +152,22 @@ examples that illustrate different topics. </p> -<H2><a name="Preface_nn9"></a>1.8 Backwards Compatibility</H2> +<H2><a name="Preface_nn9"></a>1.8 Backwards compatibility</H2> <p> -If you are a previous user of SWIG, don't expect recent versions of -SWIG to provide backwards compatibility. In fact, backwards -compatibility issues may arise even between successive 1.3.x releases. -Although these incompatibilities are regrettable, SWIG-1.3 is an active -development project. The primary goal of this effort is to make SWIG +If you are a previous user of SWIG, don't expect +SWIG to provide complete backwards compatibility. +Although the developers strive to the utmost to keep backwards compatibility, +this isn't always possible as the +primary goal over time is to make SWIG better---a process that would simply be impossible if the developers are constantly bogged down with backwards compatibility issues. +Potential incompatibilities are clearly marked in the detailed release notes +(CHANGES files). </p> -<p> -On a positive note, a few incompatibilities are a small price to pay -for the large number of new features that have been -added---namespaces, templates, smart pointers, overloaded methods, -operators, and more. -</p> - <p> If you need to work with different versions of SWIG and backwards compatibility is an issue, you can use the SWIG_VERSION preprocessor @@ -211,26 +193,15 @@ <p> SWIG is an unfunded project that would not be possible without the -contributions of many people. Most recent SWIG development has been -supported by Matthias Köppe, William Fulton, Lyle Johnson, -Richard Palmer, Thien-Thi Nguyen, Jason Stewart, Loic Dachary, Masaki -Fukushima, Luigi Ballabio, Sam Liddicott, Art Yerkes, Marcelo Matus, -Harco de Hilster, John Lenz, and Surendra Singhi. +contributions of many people working in their spare time. +If you have benefitted from using SWIG, please consider +<a href="http://www.swig.org/donate.html">Donating to SWIG</a> to keep development going. +There have been a large varied number of people +who have made contributions at all levels over time. Contributors +are mentioned either in the COPYRIGHT file or CHANGES files shipped with SWIG or in submitted bugs. </p> <p> -Historically, the following people contributed to early versions of SWIG. -Peter Lomdahl, Brad Holian, Shujia Zhou, Niels Jensen, and Tim Germann -at Los Alamos National Laboratory were the first users. Patrick -Tullmann at the University of Utah suggested the idea of automatic -documentation generation. John Schmidt and Kurtis Bleeker at the -University of Utah tested out the early versions. Chris Johnson -supported SWIG's developed at the University of Utah. John Buckman, -Larry Virden, and Tom Schwaller provided valuable input on the first -releases and improving the portability of SWIG. David Fletcher and -Gary Holt have provided a great deal of input on improving SWIG's -Perl5 implementation. Kevin Butler contributed the first Windows NT -port. <H2><a name="Preface_nn11"></a>1.10 Bug reports</H2> Modified: trunk/Doc/Manual/Sections.html =================================================================== --- trunk/Doc/Manual/Sections.html 2010-05-28 23:42:53 UTC (rev 12066) +++ trunk/Doc/Manual/Sections.html 2010-05-28 23:53:49 UTC (rev 12067) @@ -4,20 +4,12 @@ <title>SWIG-1.3 Documentation</title> </head> <body bgcolor="#ffffff"> -<H1><a name="Sections"></a>SWIG-1.3 Development Documentation</H1> +<H1><a name="Sections"></a>SWIG-2.0 Documentation</H1> Last update : SWIG-2.0.0 (in progress) <H2>Sections</H2> -<p> -The SWIG documentation is being updated to reflect new SWIG -features and enhancements. However, this update process is not quite -finished--there is a lot of old SWIG-1.1 documentation and it is taking -some time to update all of it. Please pardon our dust (or volunteer -to help!). -</p> - <H3>SWIG Core Documentation</H3> <ul> <li><a href="Preface.html#Preface">Preface</a></li> @@ -67,16 +59,5 @@ <li><a href="Extending.html#Extending">Extending SWIG</a></li> </ul> -<H3>Documentation that has not yet been updated</H3> - -<p> -This documentation has not been completely updated from SWIG-1.1, but most of the topics -still apply to the current release. Make sure you read the -<a href="SWIG.html#SWIG">SWIG Basics</a> chapter before reading -any of these chapters. Also, SWIG-1.3.10 features extensive changes to the -implementation of typemaps. Make sure you read the <a href="Typemaps.html#Typemaps">Typemaps</a> -chapter above if you are using this feature. -</p> - </body> </html> Modified: trunk/Doc/Manual/Windows.html =================================================================== --- trunk/Doc/Manual/Windows.html 2010-05-28 23:42:53 UTC (rev 12066) +++ trunk/Doc/Manual/Windows.html 2010-05-28 23:53:49 UTC (rev 12067) @@ -67,7 +67,7 @@ <p> -The swigwin distribution contains the SWIG Windows executable, swig.exe, which will run on 32 bit versions of Windows, ie Windows 95/98/ME/NT/2000/XP. +The swigwin distribution contains the SWIG Windows executable, swig.exe, which will run on 32 bit versions of Windows, ie Windows 95 and later. If you want to build your own swig.exe have a look at <a href="#Windows_swig_exe">Building swig.exe on Windows</a>. </p> @@ -78,7 +78,7 @@ <p> Using Microsoft Visual C++ is the most common approach to compiling and linking SWIG's output. The Examples directory has a few Visual C++ project files (.dsp files). -These were produced by Visual C++ 6, although they should also work in Visual C++ 5. +These were produced by Visual C++ 6. Later versions of Visual Studio should also be able to open and convert these project files. The C# examples come with .NET 2003 solution (.sln) and project files instead of Visual C++ 6 project files. The project files have been set up to execute SWIG in a custom build rule for the SWIG interface (.i) file. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-05-29 21:08:52
|
Revision: 12068 http://swig.svn.sourceforge.net/swig/?rev=12068&view=rev Author: wsfulton Date: 2010-05-29 21:08:42 +0000 (Sat, 29 May 2010) Log Message: ----------- Fix broken links shown from running 'make linkchecker' Modified Paths: -------------- trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Java.html trunk/Doc/Manual/Modules.html trunk/Doc/Manual/Preface.html Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2010-05-28 23:53:49 UTC (rev 12067) +++ trunk/Doc/Manual/Contents.html 2010-05-29 21:08:42 UTC (rev 12068) @@ -15,13 +15,12 @@ <div class="sectiontoc"> <ul> <li><a href="Preface.html#Preface_nn2">Introduction</a> -<li><a href="Preface.html#Preface_nn3">Special Introduction for Version 1.3</a> <li><a href="Preface.html#Preface_nn4">SWIG Versions</a> <li><a href="Preface.html#Preface_nn5">SWIG resources</a> <li><a href="Preface.html#Preface_nn6">Prerequisites</a> <li><a href="Preface.html#Preface_nn7">Organization of this manual</a> <li><a href="Preface.html#Preface_nn8">How to avoid reading the manual</a> -<li><a href="Preface.html#Preface_nn9">Backwards Compatibility</a> +<li><a href="Preface.html#Preface_nn9">Backwards compatibility</a> <li><a href="Preface.html#Preface_nn10">Credits</a> <li><a href="Preface.html#Preface_nn11">Bug reports</a> </ul> Modified: trunk/Doc/Manual/Java.html =================================================================== --- trunk/Doc/Manual/Java.html 2010-05-28 23:53:49 UTC (rev 12067) +++ trunk/Doc/Manual/Java.html 2010-05-29 21:08:42 UTC (rev 12068) @@ -1098,6 +1098,7 @@ However, there are limitations. For example, they cannot be used in switch statements and serialization is an issue. Please look at the following references for further information: + http://java.sun.com/developer/Books/shiftintojava/page1.html#replaceenums <a href="http://java.sun.com/developer/Books/shiftintojava/page1.html#replaceenums">Replace Enums with Classes</a> in <i>Effective Java Programming</i> on the Sun website, <a href="http://www.javaworld.com/javaworld/jw-07-1997/jw-07-enumerated.html">Create enumerated constants in Java</a> JavaWorld article, <a href="http://www.javaworld.com/javaworld/javatips/jw-javatip133.html">Java Tip 133: More on typesafe enums</a> and @@ -2360,7 +2361,7 @@ <p> A Java proxy class is generated for each structure, union or C++ class that is wrapped. -Proxy classes have also been called <a href="http://java.sun.com/developer/JDCTechTips/2001/tt0612.html#tip2">peer classes</a>. +Proxy classes have also been called <a href="http://java.sun.com/docs/books/jni/html/stubs.html">peer classes</a>. The default proxy class for our previous example looks like this: </p> Modified: trunk/Doc/Manual/Modules.html =================================================================== --- trunk/Doc/Manual/Modules.html 2010-05-28 23:53:49 UTC (rev 12067) +++ trunk/Doc/Manual/Modules.html 2010-05-29 21:08:42 UTC (rev 12068) @@ -244,7 +244,7 @@ <H2><a name="Modules_external_run_time"></a>15.4 External access to the runtime</H2> -<p>As described in <a href="Typemaps.html#runtime_type_checker">The run-time type checker</a>, +<p>As described in <a href="Typemaps.html#Typemaps_runtime_type_checker">The run-time type checker</a>, the functions <tt>SWIG_TypeQuery</tt>, <tt>SWIG_NewPointerObj</tt>, and others sometimes need to be called. Calling these functions from a typemap is supported, since the typemap code is embedded into the <tt>_wrap.c</tt> file, which has those declarations available. If you need Modified: trunk/Doc/Manual/Preface.html =================================================================== --- trunk/Doc/Manual/Preface.html 2010-05-28 23:53:49 UTC (rev 12067) +++ trunk/Doc/Manual/Preface.html 2010-05-29 21:08:42 UTC (rev 12068) @@ -11,13 +11,12 @@ <div class="sectiontoc"> <ul> <li><a href="#Preface_nn2">Introduction</a> -<li><a href="#Preface_nn3">Special Introduction for Version 1.3</a> <li><a href="#Preface_nn4">SWIG Versions</a> <li><a href="#Preface_nn5">SWIG resources</a> <li><a href="#Preface_nn6">Prerequisites</a> <li><a href="#Preface_nn7">Organization of this manual</a> <li><a href="#Preface_nn8">How to avoid reading the manual</a> -<li><a href="#Preface_nn9">Backwards Compatibility</a> +<li><a href="#Preface_nn9">Backwards compatibility</a> <li><a href="#Preface_nn10">Credits</a> <li><a href="#Preface_nn11">Bug reports</a> </ul> @@ -49,7 +48,7 @@ variety of applications--in fact almost anything where C/C++ programming is involved. -<H2><a name="Preface_nn4"></a>1.3 SWIG Versions</H2> +<H2><a name="Preface_nn4"></a>1.2 SWIG Versions</H2> <p> @@ -64,7 +63,7 @@ source was placed under the GNU General Public License version 3. </p> -<H2><a name="Preface_nn5"></a>1.4 SWIG resources</H2> +<H2><a name="Preface_nn5"></a>1.3 SWIG resources</H2> <p> @@ -103,7 +102,7 @@ </pre></div> -<H2><a name="Preface_nn6"></a>1.5 Prerequisites</H2> +<H2><a name="Preface_nn6"></a>1.4 Prerequisites</H2> <p> @@ -128,7 +127,7 @@ of the gory details, you will almost certainly want to consult a good C++ reference. If you don't program in C++, you may just want to skip those parts of the manual. -<H2><a name="Preface_nn7"></a>1.6 Organization of this manual</H2> +<H2><a name="Preface_nn7"></a>1.5 Organization of this manual</H2> <p> @@ -140,7 +139,7 @@ to know. </p> -<H2><a name="Preface_nn8"></a>1.7 How to avoid reading the manual</H2> +<H2><a name="Preface_nn8"></a>1.6 How to avoid reading the manual</H2> <p> @@ -152,7 +151,7 @@ examples that illustrate different topics. </p> -<H2><a name="Preface_nn9"></a>1.8 Backwards compatibility</H2> +<H2><a name="Preface_nn9"></a>1.7 Backwards compatibility</H2> <p> @@ -188,7 +187,7 @@ wrapper file. The SWIG preprocessor has defined SWIG_VERSION since SWIG-1.3.11. </p> -<H2><a name="Preface_nn10"></a>1.9 Credits</H2> +<H2><a name="Preface_nn10"></a>1.8 Credits</H2> <p> @@ -203,7 +202,7 @@ <p> -<H2><a name="Preface_nn11"></a>1.10 Bug reports</H2> +<H2><a name="Preface_nn11"></a>1.9 Bug reports</H2> <p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-06-01 19:19:23
|
Revision: 12078 http://swig.svn.sourceforge.net/swig/?rev=12078&view=rev Author: wsfulton Date: 2010-06-01 19:19:17 +0000 (Tue, 01 Jun 2010) Log Message: ----------- html fixes and chapter renumbering Modified Paths: -------------- trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Library.html trunk/Doc/Manual/Preface.html Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2010-06-01 19:03:55 UTC (rev 12077) +++ trunk/Doc/Manual/Contents.html 2010-06-01 19:19:17 UTC (rev 12078) @@ -236,7 +236,7 @@ <li><a href="SWIGPlus.html#SWIGPlus_exception_specifications">Exception specifications</a> <li><a href="SWIGPlus.html#SWIGPlus_catches">Exception handling with %catches</a> <li><a href="SWIGPlus.html#SWIGPlus_nn33">Pointers to Members</a> -<li><a href="SWIGPlus.html#SWIGPlus_nn34">Smart pointers and operator->()</a> +<li><a href="SWIGPlus.html#SWIGPlus_smart_pointers">Smart pointers and operator->()</a> <li><a href="SWIGPlus.html#SWIGPlus_nn35">Using declarations and inheritance</a> <li><a href="SWIGPlus.html#SWIGPlus_nested_classes">Nested classes</a> <li><a href="SWIGPlus.html#SWIGPlus_const">A brief rant about const-correctness</a> @@ -287,9 +287,10 @@ </ul> <li><a href="Library.html#Library_stl_cpp_library">STL/C++ Library</a> <ul> -<li><a href="Library.html#Library_nn14">std_string.i</a> -<li><a href="Library.html#Library_nn15">std_vector.i</a> +<li><a href="Library.html#Library_std_string">std::string</a> +<li><a href="Library.html#Library_std_vector">std::vector</a> <li><a href="Library.html#Library_stl_exceptions">STL exceptions</a> +<li><a href="Library.html#Library_std_shared_ptr">shared_ptr smart pointer</a> </ul> <li><a href="Library.html#Library_nn16">Utility Libraries</a> <ul> Modified: trunk/Doc/Manual/Library.html =================================================================== --- trunk/Doc/Manual/Library.html 2010-06-01 19:03:55 UTC (rev 12077) +++ trunk/Doc/Manual/Library.html 2010-06-01 19:19:17 UTC (rev 12078) @@ -30,6 +30,7 @@ <li><a href="#Library_std_string">std::string</a> <li><a href="#Library_std_vector">std::vector</a> <li><a href="#Library_stl_exceptions">STL exceptions</a> +<li><a href="#Library_std_shared_ptr">shared_ptr smart pointer</a> </ul> <li><a href="#Library_nn16">Utility Libraries</a> <ul> @@ -1393,7 +1394,7 @@ </p> -<H3><a name="Library_std_string"></a>std::string</H3> +<H3><a name="Library_std_string"></a>8.4.1 std::string</H3> <p> @@ -1477,7 +1478,7 @@ </pre> </div> -<H3><a name="Library_std_vector"></a>std::vector</H3> +<H3><a name="Library_std_vector"></a>8.4.2 std::vector</H3> <p> @@ -1706,8 +1707,9 @@ Any thrown STL exceptions will then be gracefully handled instead of causing a crash. </p> -<H3><a name="Library_std_shared_ptr"></a>shared_ptr smart pointer</H3> +<H3><a name="Library_std_shared_ptr"></a>8.4.4 shared_ptr smart pointer</H3> + <p> Some target languages have support for handling the widely used <tt>boost::shared_ptr</tt> smart pointer. This smart pointer is also available as <tt>std::tr1::shared_ptr</tt> before it becomes fully standardized as <tt>std::shared_ptr</tt>. @@ -1807,8 +1809,8 @@ <div class="shell"> <pre> -example_wrap.cxx: In function ‘void Java_exampleJNI_delete_1DerivedIntValue(JNIEnv*, _jclass*, jlong)’: -example_wrap.cxx:3169: error: ‘smartarg1’ was not declared in this scope +example_wrap.cxx: In function 'void Java_exampleJNI_delete_1DerivedIntValue(JNIEnv*, _jclass*, jlong)': +example_wrap.cxx:3169: error: 'smartarg1' was not declared in this scope </pre> </div> Modified: trunk/Doc/Manual/Preface.html =================================================================== --- trunk/Doc/Manual/Preface.html 2010-06-01 19:03:55 UTC (rev 12077) +++ trunk/Doc/Manual/Preface.html 2010-06-01 19:19:17 UTC (rev 12078) @@ -200,8 +200,6 @@ are mentioned either in the COPYRIGHT file or CHANGES files shipped with SWIG or in submitted bugs. </p> -<p> - <H2><a name="Preface_nn11"></a>1.9 Bug reports</H2> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-06-02 22:38:47
|
Revision: 12094 http://swig.svn.sourceforge.net/swig/?rev=12094&view=rev Author: wsfulton Date: 2010-06-02 22:38:41 +0000 (Wed, 02 Jun 2010) Log Message: ----------- 1.3 => 2.0 for documentation headings Modified Paths: -------------- trunk/Doc/Manual/Sections.html trunk/Doc/Manual/Typemaps.html trunk/Doc/Manual/index.html Modified: trunk/Doc/Manual/Sections.html =================================================================== --- trunk/Doc/Manual/Sections.html 2010-06-02 22:17:34 UTC (rev 12093) +++ trunk/Doc/Manual/Sections.html 2010-06-02 22:38:41 UTC (rev 12094) @@ -1,7 +1,7 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> -<title>SWIG-1.3 Documentation</title> +<title>SWIG-2.0 Documentation</title> </head> <body bgcolor="#ffffff"> <H1><a name="Sections"></a>SWIG-2.0 Documentation</H1> Modified: trunk/Doc/Manual/Typemaps.html =================================================================== --- trunk/Doc/Manual/Typemaps.html 2010-06-02 22:17:34 UTC (rev 12093) +++ trunk/Doc/Manual/Typemaps.html 2010-06-02 22:38:41 UTC (rev 12094) @@ -1672,7 +1672,8 @@ <p> showing that the best default match supplied by SWIG is the <tt>SWIGTYPE []</tt> typemap. -As the example shows, the successful match displays the used typemap source including typemap method, type and optional name in one of these simplified formats: <p> +As the example shows, the successful match displays the used typemap source including typemap method, type and optional name in one of these simplified formats: +</p> <ul> <li> <tt>Using: %typemap(method) type name</tt> Modified: trunk/Doc/Manual/index.html =================================================================== --- trunk/Doc/Manual/index.html 2010-06-02 22:17:34 UTC (rev 12093) +++ trunk/Doc/Manual/index.html 2010-06-02 22:38:41 UTC (rev 12094) @@ -1,10 +1,10 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> -<title>SWIG-1.3 Documentation</title> +<title>SWIG-2.0 Documentation</title> </head> <body bgcolor="#ffffff"> -<H1><a name="index"></a>SWIG-1.3 Development Documentation</h1> +<H1><a name="index"></a>SWIG-2.0 Documentation</h1> The SWIG documentation is available in one of the following formats. <ul> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <wsf...@us...> - 2010-06-08 06:03:02
|
Revision: 12105 http://swig.svn.sourceforge.net/swig/?rev=12105&view=rev Author: wsfulton Date: 2010-06-08 06:02:56 +0000 (Tue, 08 Jun 2010) Log Message: ----------- Add section on Aspect Oriented Programming after discussion on swig-devel Modified Paths: -------------- trunk/Doc/Manual/Contents.html trunk/Doc/Manual/Typemaps.html Modified: trunk/Doc/Manual/Contents.html =================================================================== --- trunk/Doc/Manual/Contents.html 2010-06-08 05:37:49 UTC (rev 12104) +++ trunk/Doc/Manual/Contents.html 2010-06-08 06:02:56 UTC (rev 12105) @@ -336,6 +336,7 @@ <li><a href="Typemaps.html#Typemaps_nn6">Reusing typemaps</a> <li><a href="Typemaps.html#Typemaps_nn7">What can be done with typemaps?</a> <li><a href="Typemaps.html#Typemaps_nn8">What can't be done with typemaps?</a> +<li><a href="Typemaps.html#Typemaps_aspects">Similarities to Aspect Oriented Programming</a> <li><a href="Typemaps.html#Typemaps_nn9">The rest of this chapter</a> </ul> <li><a href="Typemaps.html#Typemaps_nn10">Typemap specifications</a> Modified: trunk/Doc/Manual/Typemaps.html =================================================================== --- trunk/Doc/Manual/Typemaps.html 2010-06-08 05:37:49 UTC (rev 12104) +++ trunk/Doc/Manual/Typemaps.html 2010-06-08 06:02:56 UTC (rev 12105) @@ -18,6 +18,7 @@ <li><a href="#Typemaps_nn6">Reusing typemaps</a> <li><a href="#Typemaps_nn7">What can be done with typemaps?</a> <li><a href="#Typemaps_nn8">What can't be done with typemaps?</a> +<li><a href="#Typemaps_aspects">Similarities to Aspect Oriented Programming</a> <li><a href="#Typemaps_nn9">The rest of this chapter</a> </ul> <li><a href="#Typemaps_nn10">Typemap specifications</a> @@ -115,7 +116,7 @@ <p> One of the most important problems in wrapper code generation is the -conversion of datatypes between programming languages. Specifically, +conversion or marshalling of datatypes between programming languages. Specifically, for every C/C++ declaration, SWIG must somehow generate wrapper code that allows values to be passed back and forth between languages. Since every programming language represents data differently, this is @@ -637,10 +638,28 @@ </pre> </div> -<H3><a name="Typemaps_nn9"></a>10.1.7 The rest of this chapter</H3> +<H3><a name="Typemaps_aspects"></a>10.1.7 Similarities to Aspect Oriented Programming</H3> <p> +SWIG has parallels to <a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming">Aspect Oriented Software Development (AOP)</a>. +The <a href="http://en.wikipedia.org/wiki/Aspect-oriented_programming#Terminology">AOP terminology</a> with respect to SWIG typemaps can be viewed as follows: +</p> +<ul> + <li> <b>Cross-cutting concerns</b>: The cross-cutting concerns are the modularization of the functionality that the typemaps implement, which is primarily marshalling of types from/to the target language and C/C++. + <li> <b>Advice</b>: The typemap body contains code which is executed whenever the marshalling is required. + <li> <b>Pointcut</b>: The pointcuts are the positions in the wrapper code that the typemap code is generated into. + <li> <b>Aspect</b>: Aspects are the combination of the pointcut and the advice, hence each typemap is an aspect. +</ul> +<p> +SWIG can also be viewed as has having a second set of aspects based around <a href="Customization.html">%feature</a>. +Features such as <tt>%exception</tt> are also cross-cutting concerns as they encapsulate code that can be used to add logging or exception handling to any function. +</p> + +<H3><a name="Typemaps_nn9"></a>10.1.8 The rest of this chapter</H3> + + +<p> The rest of this chapter provides detailed information for people who want to write new typemaps. This information is of particular importance to anyone who intends to write a new SWIG target language module. Power users can also This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |