diff --git a/Doc/Manual/C.html b/Doc/Manual/C.html index c40fa2f1b..6a177a6b0 100644 --- a/Doc/Manual/C.html +++ b/Doc/Manual/C.html @@ -5,30 +5,47 @@ -

36 SWIG and C as the target language

+

38 SWIG and C as the target language

@@ -44,7 +61,7 @@ This chapter describes SWIG's support for creating ISO C wrappers. This module h

-

36.1 Overview

+

38.1 Overview

@@ -62,17 +79,19 @@ With wrapper interfaces generated by SWIG, it is easy to use the functionality o Flattening C++ language constructs into a set of C-style functions obviously comes with many limitations and inconveniences, but this module is actually also capable of generating C++ wrappers defined completely inline using the C functions, thus wrapping the original C++ library API in another, similar C++ API. Contrary to the natural initial reaction, this is far from being completely pointless, as wrapping C++ API in this way avoids all problems due to C++ ABI issues, e.g. it is now possible to use the original C++ API using a different C++ compiler, or a different version of the same compiler, or even the same compiler, but with different compilation options affecting the ABI. The C++ wrapper API is not identical to the original one, but strives to be as close to it as possible.

-

Known C++ Shortcomings in Generated C API:

+

38.1.1 Known C++ Shortcomings in Generated C API

+ + -

36.2 Preliminaries

+

38.2 Preliminaries

-

36.2.1 Running SWIG

+

38.2.1 Running SWIG

@@ -107,7 +126,7 @@ $ swig -c++ -c example.i

Note that -c is the option specifying the target language and -c++ controls what the input language is. -

+

This will generate an example_wrap.c file or, in the latter case, example_wrap.cxx file, along with example_wrap.h (the same extension is used in both C and C++ cases for the last one). The names of the files are derived from the name of the input file by default, but can be changed using the -o and -oh options common to all language modules. @@ -117,7 +136,7 @@ This will generate an example_wrap.c file or, in the latter case, e The xxx_wrap.c file contains the wrapper functions, which perform the main functionality of SWIG: each of the wrappers translates the input arguments from C to C++, makes calls to the original functions and marshals C++ output back to C data. The xxx_wrap.h header file contains the declarations of these functions as well as global variables.

-

36.2.2 Command line options

+

38.2.2 Command line options

@@ -150,7 +169,7 @@ $ swig -c -help -

36.2.3 Compiling a dynamic module

+

38.2.3 Compiling a dynamic module

@@ -177,7 +196,7 @@ $ g++ -shared example_wrap.o -o libexample.so Now the shared library module is ready to use. Note that the name of the generated module is important: is should be prefixed with lib on Unix, and have the specific extension, like .dll for Windows or .so for Unix systems.

-

36.2.4 Using the generated module

+

38.2.4 Using the generated module

@@ -192,7 +211,7 @@ $ gcc runme.c -L. -lexample -o runme This will compile the application code (runme.c) and link it against the generated shared module. Following the -L option is the path to the directory containing the shared module. The output executable is ready to use. The last thing to do is to supply to the operating system the information of location of our module. This is system dependant, for instance Unix systems look for shared modules in certain directories, like /usr/lib, and additionally we can set the environment variable LD_LIBRARY_PATH (Unix) or PATH (Windows) for other directories.

-

36.3 Basic C wrapping

+

38.3 Basic C wrapping

@@ -209,7 +228,7 @@ It is also possible to output arbitrary additional code into the generated heade %} -

36.3.1 Functions

+

38.3.1 Functions

@@ -273,7 +292,7 @@ int _wrap_gcd(int arg1, int arg2) { This time calling gcd with negative value argument will trigger an error message. This can save you time writing all the constraint checking code by hand.

-

36.3.2 Variables

+

38.3.2 Variables

@@ -311,7 +330,7 @@ ms.x = 123; ms.d = 123.123; -

36.4 Basic C++ wrapping

+

38.4 Basic C++ wrapping

@@ -320,6 +339,7 @@ The main reason of having the C module in SWIG is to be able to access C++ from

By default, SWIG attempts to build a natural C interface to your C/C++ code. +

@@ -343,10 +363,13 @@ By default, SWIG attempts to build a natural C interface to your C/C++ code.
C++ Type
+ +

This section briefly covers the essential aspects of this wrapping.

-

36.3.3 Enums

+

38.4.1 Enums

+

C enums and unscoped C++ enums are simply copied to the generated code and both the enum itself and its elements keep the same name as in the original code unless -namespace option is used or nspace feature is enabled, in which case the prefix corresponding to the specified namespace is used. @@ -356,7 +379,7 @@ For scoped C++11 enums, the enum name itself is used as an additional prefix.

-

36.4.1 Classes

+

38.4.2 Classes

@@ -434,9 +457,11 @@ radius: 1.500000 area: 7.068583 -

Backend Developer Documentation

+

38.5 Backend Developer Documentation

+ + +

38.6 Typemaps

-

Typemaps

@@ -504,7 +529,8 @@ SwigObj* MyClass_do(SwigObj *carg1) {
-

C Typemaps, a Code Generation Walkthrough

+

38.6.1 C Typemaps, a Code Generation Walkthrough

+

To get a better idea of which typemap is used for which generated code, have a look at the following 'walk through'. @@ -514,7 +540,9 @@ To get a better idea of which typemap is used for which generated code, have a l Let's assume we have the following C++ interface file, we'd like to generate code for:

-

The Interface

+

38.6.1.1 The Interface

+ +
 %module example
 
@@ -550,7 +578,8 @@ SomeIntTemplateClass * SomeIntTemplateClass_new();
 void SomeIntTemplateClass_delete(SomeIntTemplateClass * carg1);
 
-

The Wrapper

+

38.6.1.2 The Wrapper

+

We'll examine the generation of the wrapper function first. @@ -693,7 +722,8 @@ replaced with either 0 or nothing, depending on whether the function has a non-void return value or not.

-

The Proxy

+

38.6.1.3 The Proxy

+

Compared to the wrapper code generation, the header code is very simple. @@ -719,13 +749,15 @@ SomeIntTemplateClass * SomeIntTemplateClass_new(); void SomeIntTemplateClass_delete(SomeIntTemplateClass * carg1); -

36.5 Exception handling

+

38.7 Exception handling

+

Any call to a C++ function may throw an exception, which cannot be caught by C code. Instead, the special SWIG_CException_get_pending() function must be called to check for this. If it returns a non-null pointer, SWIG_CException_msg_get() can be called to retrieve the error message associated with the exception. Finally, SWIG_CException_reset_pending() must be called to free the exception object and reset the current pending exception. Note that exception handling is much simpler when using C++, rather than C, wrappers, see sections 36.6.2.

-

36.6 C++ Wrappers

+

38.8 C++ Wrappers

+

When -c++ command line option is used (and -nocxx one is not), the header file generated by SWIG will also contain the declarations of C++ wrapper functions and classes mirroring the original API. All C++ wrappers are fully inline, i.e. don't need to be compiled separately, and are always defined inside the namespace (or nested namespaces) specified by -namespace command-line option or the namespace with the same name as the SWIG module name if this option is not specified. @@ -748,7 +780,8 @@ Other ones are due to things that could be supported but haven't been implemente

  • Only enums using int (or smaller type) as underlying type are supported.
  • -

    36.6.1 Additional customization possibilities

    +

    38.8.1 Additional customization possibilities

    +

    Generated C++ code can be customized by inserting custom code in the following sections: @@ -767,7 +800,8 @@ The following features are taken into account when generating C++ wrappers:

  • cxxignore May be set to skip generation of C++ wrappers for the given function or class, while still generating C wrappers for them.
  • -

    36.6.2 Exception handling

    +

    38.8.2 Exception handling

    +

    Exception handling in C++ is more natural, as the exceptions are re-thrown when using C++ wrappers and so can be caught, as objects of the special SWIG_CException type, using the usual try/catch statement. The objects of SWIG_CException class have code() and msg() methods, with the latter returning the error message associated with the exception. diff --git a/Doc/Manual/Contents.html b/Doc/Manual/Contents.html index fd2f034ed..ae81eb4ef 100644 --- a/Doc/Manual/Contents.html +++ b/Doc/Manual/Contents.html @@ -466,6 +466,10 @@

  • Using %newobject to release memory
  • cstring.i +
  • C standard library +
  • STL/C++ library +
  • Doxygen to XML Csharp documentation +
  • Troubleshooting -
  • Doxygen to CSharp XML +
  • Doxygen to XML Csharp documentation @@ -2119,7 +2119,6 @@ comment, the whole comment block is ignored:

    18.5.4 Further details

    -

    18.6 Troubleshooting

    diff --git a/Doc/Manual/Extending.html b/Doc/Manual/Extending.html index c9b51d363..179100ca1 100644 --- a/Doc/Manual/Extending.html +++ b/Doc/Manual/Extending.html @@ -7,7 +7,7 @@ -

    40 Extending SWIG to support new languages

    +

    41 Extending SWIG to support new languages

    -

    40.4.4 Attribute namespaces

    +

    41.4.4 Attribute namespaces

    @@ -698,7 +698,7 @@ that matches the name of the target language. For example, python:foo perl:foo.

    -

    40.4.5 Symbol Tables

    +

    41.4.5 Symbol Tables

    @@ -786,7 +786,7 @@ example.i:5. Previous declaration is foo_i(int ) -

    40.4.6 The %feature directive

    +

    41.4.6 The %feature directive

    @@ -841,7 +841,7 @@ For example, the exception code above is simply stored without any modifications.

    -

    40.4.7 Code Generation

    +

    41.4.7 Code Generation

    @@ -963,7 +963,7 @@ public : The role of these functions is described shortly.

    -

    40.4.8 SWIG and XML

    +

    41.4.8 SWIG and XML

    @@ -976,7 +976,7 @@ internal data structures, it may be useful to keep XML in the back of your mind as a model.

    -

    40.5 Primitive Data Structures

    +

    41.5 Primitive Data Structures

    @@ -1022,7 +1022,7 @@ typedef Hash Typetab; -

    40.5.1 Strings

    +

    41.5.1 Strings

    @@ -1168,7 +1168,7 @@ At most one of DOH_REPLACE_ANY and DOH_REPLACE_FIRST should be -

    40.5.2 Hashes

    +

    41.5.2 Hashes

    @@ -1253,7 +1253,7 @@ Returns the list of sorted hash table keys. -

    40.5.3 Lists

    +

    41.5.3 Lists

    @@ -1342,7 +1342,7 @@ If t is not a standard object, it is assumed to be a char * and is used to create a String object. -

    40.5.4 Common operations

    +

    41.5.4 Common operations

    The following operations are applicable to all datatypes. @@ -1397,7 +1397,7 @@ objects and report errors. Gets the line number associated with x. -

    40.5.5 Iterating over Lists and Hashes

    +

    41.5.5 Iterating over Lists and Hashes

    To iterate over the elements of a list or a hash table, the following functions are used: @@ -1442,7 +1442,7 @@ for (j = First(j); j.item; j= Next(j)) { -

    40.5.6 I/O

    +

    41.5.6 I/O

    Special I/O functions are used for all internal I/O. These operations @@ -1576,7 +1576,7 @@ Printf(f, "%s\n", s); Similarly, the preprocessor and parser all operate on string-files.

    -

    40.6 Navigating and manipulating parse trees

    +

    41.6 Navigating and manipulating parse trees

    Parse trees are built as collections of hash tables. Each node is a hash table in which @@ -1710,7 +1710,7 @@ Deletes a node from the parse tree. Deletion reconnects siblings and properly u the parent so that sibling nodes are unaffected. -

    40.7 Working with attributes

    +

    41.7 Working with attributes

    @@ -1827,7 +1827,7 @@ the attribute is optional. Swig_restore() must always be called after function. -

    40.8 Type system

    +

    41.8 Type system

    @@ -1836,7 +1836,7 @@ pointers, references, and pointers to members. A detailed discussion of type theory is impossible here. However, let's cover the highlights.

    -

    40.8.1 String encoding of types

    +

    41.8.1 String encoding of types

    @@ -1937,7 +1937,7 @@ make the final type, the two parts are just joined together using string concatenation.

    -

    40.8.2 Type construction

    +

    41.8.2 Type construction

    @@ -2106,7 +2106,7 @@ Returns the prefix of a type. For example, if ty is ty is unmodified. -

    40.8.3 Type tests

    +

    41.8.3 Type tests

    @@ -2193,7 +2193,7 @@ Checks if ty is a varargs type. Checks if ty is a templatized type. -

    40.8.4 Typedef and inheritance

    +

    41.8.4 Typedef and inheritance

    @@ -2295,7 +2295,7 @@ Fully reduces ty according to typedef rules. Resulting datatype will consist only of primitive typenames. -

    40.8.5 Lvalues

    +

    41.8.5 Lvalues

    @@ -2332,7 +2332,7 @@ Literal y; // type = 'Literal', ltype='p.char' -

    40.8.6 Output functions

    +

    41.8.6 Output functions

    @@ -2394,7 +2394,7 @@ SWIG, but is most commonly associated with type-descriptor objects that appear in wrappers (e.g., SWIGTYPE_p_double). -

    40.9 Parameters

    +

    41.9 Parameters

    @@ -2493,7 +2493,7 @@ included. Used to emit prototypes. Returns the number of required (non-optional) arguments in p. -

    40.10 Writing a Language Module

    +

    41.10 Writing a Language Module

    @@ -2508,7 +2508,7 @@ describes the creation of a minimal Python module. You should be able to extra this to other languages.

    -

    40.10.1 Execution model

    +

    41.10.1 Execution model

    @@ -2518,7 +2518,7 @@ the parsing of command line options, all aspects of code generation are controll different methods of the Language that must be defined by your module.

    -

    40.10.2 Starting out

    +

    41.10.2 Starting out

    @@ -2626,7 +2626,7 @@ that activates your module. For example, swig -python foo.i. The messages from your new module should appear.

    -

    40.10.3 Command line options

    +

    41.10.3 Command line options

    @@ -2685,7 +2685,7 @@ to mark the option as valid. If you forget to do this, SWIG will terminate wit unrecognized command line option error.

    -

    40.10.4 Configuration and preprocessing

    +

    41.10.4 Configuration and preprocessing

    @@ -2734,7 +2734,7 @@ an implementation file python.cxx and a configuration file python.swg.

    -

    40.10.5 Entry point to code generation

    +

    41.10.5 Entry point to code generation

    @@ -2792,7 +2792,7 @@ int Python::top(Node *n) { -

    40.10.6 Module I/O and wrapper skeleton

    +

    41.10.6 Module I/O and wrapper skeleton

    @@ -2940,7 +2940,7 @@ functionWrapper : void Shape_y_set(Shape *self, double y) -

    40.10.7 Low-level code generators

    +

    41.10.7 Low-level code generators

    @@ -3094,7 +3094,7 @@ but without the typemaps, there is still work to do.

    -

    40.10.8 Configuration files

    +

    41.10.8 Configuration files

    @@ -3238,7 +3238,7 @@ politely displays the ignoring language message. -

    40.10.9 Runtime support

    +

    41.10.9 Runtime support

    @@ -3247,7 +3247,7 @@ Discuss the kinds of functions typically needed for SWIG runtime support (e.g. the SWIG files that implement those functions.

    -

    40.10.10 Standard library files

    +

    41.10.10 Standard library files

    @@ -3266,7 +3266,7 @@ The following are the minimum that are usually supported: Please copy these and modify for any new language.

    -

    40.10.11 User examples

    +

    41.10.11 User examples

    @@ -3295,7 +3295,7 @@ during this process, see the section on .

    -

    40.10.12 Test driven development and the test-suite

    +

    41.10.12 Test driven development and the test-suite

    @@ -3354,7 +3354,7 @@ It is therefore essential that the runtime tests are written in a manner that di but error/exception out with an error message on stderr on failure.

    -

    40.10.12.1 Running the test-suite

    +

    41.10.12.1 Running the test-suite

    @@ -3548,7 +3548,7 @@ It can be run in the same way as the other language test-suites, replacing [lang The test cases used and the way it works is described in Examples/test-suite/errors/Makefile.in.

    -

    40.10.13 Documentation

    +

    41.10.13 Documentation

    @@ -3580,7 +3580,7 @@ Some topics that you'll want to be sure to address include: if available. -

    40.10.14 Coding style guidelines

    +

    41.10.14 Coding style guidelines

    @@ -3605,7 +3605,7 @@ should be avoided as unlike the SWIG developers, users will never have consisten

    -

    40.10.15 Target language status

    +

    41.10.15 Target language status

    @@ -3614,7 +3614,7 @@ the Target language in This section provides more details on how this status is given.

    -

    40.10.15.1 Supported status

    +

    41.10.15.1 Supported status

    @@ -3661,7 +3661,7 @@ A target language is given the 'Supported' status when

  • -

    40.10.15.2 Experimental status

    +

    41.10.15.2 Experimental status

    @@ -3726,7 +3726,7 @@ Some minimum requirements and notes about languages with the 'Experimental' stat -

    40.10.16 Prerequisites for adding a new language module to the SWIG distribution

    +

    41.10.16 Prerequisites for adding a new language module to the SWIG distribution

    @@ -3790,7 +3790,7 @@ the existing tests.

    -

    40.11 Debugging Options

    +

    41.11 Debugging Options

    @@ -3818,7 +3818,7 @@ There are various command line options which can aid debugging a SWIG interface The complete list of command line options for SWIG are available by running swig -help.

    -

    40.12 Guide to parse tree nodes

    +

    41.12 Guide to parse tree nodes

    @@ -4226,7 +4226,7 @@ extern "X" { ... } declaration. -

    40.13 Further Development Information

    +

    41.13 Further Development Information

    diff --git a/Doc/Manual/Guile.html b/Doc/Manual/Guile.html index d40681587..ea8444270 100644 --- a/Doc/Manual/Guile.html +++ b/Doc/Manual/Guile.html @@ -456,16 +456,16 @@ mapping:

    -      MAP(SWIG_MemoryError,	    "swig-memory-error");
    -      MAP(SWIG_IOError,		    "swig-io-error");
    -      MAP(SWIG_RuntimeError,	    "swig-runtime-error");
    -      MAP(SWIG_IndexError,	    "swig-index-error");
    -      MAP(SWIG_TypeError,	    "swig-type-error");
    -      MAP(SWIG_DivisionByZero,	    "swig-division-by-zero");
    -      MAP(SWIG_OverflowError,	    "swig-overflow-error");
    -      MAP(SWIG_SyntaxError,	    "swig-syntax-error");
    -      MAP(SWIG_ValueError,	    "swig-value-error");
    -      MAP(SWIG_SystemError,	    "swig-system-error");
    +      MAP(SWIG_MemoryError,         "swig-memory-error");
    +      MAP(SWIG_IOError,             "swig-io-error");
    +      MAP(SWIG_RuntimeError,        "swig-runtime-error");
    +      MAP(SWIG_IndexError,          "swig-index-error");
    +      MAP(SWIG_TypeError,           "swig-type-error");
    +      MAP(SWIG_DivisionByZero,      "swig-division-by-zero");
    +      MAP(SWIG_OverflowError,       "swig-overflow-error");
    +      MAP(SWIG_SyntaxError,         "swig-syntax-error");
    +      MAP(SWIG_ValueError,          "swig-value-error");
    +      MAP(SWIG_SystemError,         "swig-system-error");
           MAP(SWIG_NullReferenceError,  "swig-null-reference-error");
     
    diff --git a/Doc/Manual/Java.html b/Doc/Manual/Java.html index ae0f7bb0a..edc2d922a 100644 --- a/Doc/Manual/Java.html +++ b/Doc/Manual/Java.html @@ -4701,23 +4701,21 @@ This requires fixing with one of two solutions:
      -

      -

    1. Change the access modifier to public for the derived class by adding the following before SWIG parses the DerivedClass:
    2. -

      +
    3. Change the access modifier to public for the derived class by adding the following before SWIG parses the DerivedClass:

       %feature("java:methodmodifiers") DerivedClass::baseMethod2 "public"
       
      +
    4. -

      -

    5. Simply ignore the method in the derived class altogether as it cannot be used as a protected method in Java as the C++ design intended:
    6. -

      +
    7. Simply ignore the method in the derived class altogether as it cannot be used as a protected method in Java as the C++ design intended:

       %ignore DerivedClass::baseMethod2;
       
      +
    diff --git a/Doc/Manual/Library.html b/Doc/Manual/Library.html index 7813ab785..eaaa6f1de 100644 --- a/Doc/Manual/Library.html +++ b/Doc/Manual/Library.html @@ -29,7 +29,7 @@
  • C standard library
  • STL/C++ library -

    38.3 External documentation

    +

    39.3 External documentation

    diff --git a/Doc/Manual/Ocaml.html b/Doc/Manual/Ocaml.html index 094d97df5..946f9f694 100644 --- a/Doc/Manual/Ocaml.html +++ b/Doc/Manual/Ocaml.html @@ -7,7 +7,7 @@ -

    39 SWIG and OCaml

    +

    40 SWIG and OCaml

    -

    39.1.3 The camlp4 module

    +

    40.1.3 The camlp4 module

    @@ -241,7 +241,7 @@ let b = C_string (getenv "PATH") -

    39.1.4 Using your module

    +

    40.1.4 Using your module

    @@ -255,7 +255,7 @@ option to build your functions into the primitive list. This option is not needed when you build native code.

    -

    39.1.5 Compilation problems and compiling with C++

    +

    40.1.5 Compilation problems and compiling with C++

    @@ -275,7 +275,7 @@ liberal with pointer types may not compile under the C++ compiler. Most code meant to be compiled as C++ will not have problems.

    -

    39.2 The low-level Ocaml/C interface

    +

    40.2 The low-level Ocaml/C interface

    @@ -375,7 +375,7 @@ value items pass through directly, but you must make your own type signature for a function that uses value in this way.

    -

    39.2.1 The generated module

    +

    40.2.1 The generated module

    @@ -409,7 +409,7 @@ it describes the output SWIG will generate for class definitions. -

    39.2.2 Enums

    +

    40.2.2 Enums

    @@ -472,7 +472,7 @@ val x : Enum_test.c_obj = C_enum `a -

    39.2.2.1 Enum typing in Ocaml

    +

    40.2.2.1 Enum typing in Ocaml

    @@ -485,10 +485,10 @@ functions imported from different modules. You must convert values to master values using the swig_val function before sharing them with another module.

    -

    39.2.3 Arrays

    +

    40.2.3 Arrays

    -

    39.2.3.1 Simple types of bounded arrays

    +

    40.2.3.1 Simple types of bounded arrays

    @@ -509,7 +509,7 @@ arrays of simple types with known bounds in your code, but this only works for arrays whose bounds are completely specified.

    -

    39.2.3.2 Complex and unbounded arrays

    +

    40.2.3.2 Complex and unbounded arrays

    @@ -522,7 +522,7 @@ SWIG can't predict which of these methods will be used in the array, so you have to specify it for yourself in the form of a typemap.

    -

    39.2.3.3 Using an object

    +

    40.2.3.3 Using an object

    @@ -536,7 +536,7 @@ Consider writing an object when the ending condition of your array is complex, such as using a required sentinel, etc.

    -

    39.2.3.4 Example typemap for a function taking float * and int

    +

    40.2.3.4 Example typemap for a function taking float * and int

    @@ -587,7 +587,7 @@ void printfloats( float *tab, int len ); -

    39.2.4 C++ Classes

    +

    40.2.4 C++ Classes

    @@ -630,7 +630,7 @@ the underlying pointer, so using create_[x]_from_ptr alters the returned value for the same object.

    -

    39.2.4.1 STL vector and string Example

    +

    40.2.4.1 STL vector and string Example

    @@ -710,7 +710,7 @@ baz # -

    39.2.4.2 C++ Class Example

    +

    40.2.4.2 C++ Class Example

    @@ -739,7 +739,7 @@ public: }; -

    39.2.4.3 Compiling the example

    +

    40.2.4.3 Compiling the example

    @@ -756,7 +756,7 @@ $ ocamlmktop -custom swig.cmo -I `camlp4 -where` \
       -L$QTPATH/lib -cclib -lqt
     
    -

    39.2.4.4 Sample Session

    +

    40.2.4.4 Sample Session

    @@ -783,10 +783,10 @@ Assuming you have a working installation of QT, you will see a window
     containing the string "hi" in a button.
     

    -

    39.2.5 Director Classes

    +

    40.2.5 Director Classes

    -

    39.2.5.1 Director Introduction

    +

    40.2.5.1 Director Introduction

    @@ -813,7 +813,7 @@ class foo { };

    -

    39.2.5.2 Overriding Methods in Ocaml

    +

    40.2.5.2 Overriding Methods in Ocaml

    @@ -841,7 +841,7 @@ In this example, I'll examine the objective caml code involved in providing an overloaded class. This example is contained in Examples/ocaml/shapes.

    -

    39.2.5.3 Director Usage Example

    +

    40.2.5.3 Director Usage Example

    @@ -902,7 +902,7 @@ in a more effortless style in ocaml, while leaving the "engine" part of the program in C++.

    -

    39.2.5.4 Creating director objects

    +

    40.2.5.4 Creating director objects

    @@ -943,7 +943,7 @@ object from causing a core dump, as long as the object is destroyed properly.

    -

    39.2.5.5 Typemaps for directors, directorin, directorout, directorargout

    +

    40.2.5.5 Typemaps for directors, directorin, directorout, directorargout

    @@ -954,7 +954,7 @@ well as a function return value in the same way you provide function arguments, and to receive arguments the same way you normally receive function returns.

    -

    39.2.5.6 directorin typemap

    +

    40.2.5.6 directorin typemap

    @@ -965,7 +965,7 @@ code receives when you are called. In general, a simple directorin typ can use the same body as a simple out typemap.

    -

    39.2.5.7 directorout typemap

    +

    40.2.5.7 directorout typemap

    @@ -976,7 +976,7 @@ for the same type, except when there are special requirements for object ownership, etc.

    -

    39.2.5.8 directorargout typemap

    +

    40.2.5.8 directorargout typemap

    @@ -993,7 +993,7 @@ In the event that you don't specify all of the necessary values, integral values will read zero, and struct or object returns have undefined results.

    -

    39.2.6 Exceptions

    +

    40.2.6 Exceptions

    @@ -1081,7 +1081,7 @@ The language-independent exception.i library file can also be used to raise exceptions. See the SWIG Library chapter.

    -

    39.3 Documentation Features

    +

    40.3 Documentation Features

    @@ -1090,7 +1090,7 @@ comments (colloquially referred to as "docstrings") that can be read by OCamldoc.

    -

    39.3.1 Module docstring

    +

    40.3.1 Module docstring

    diff --git a/Doc/Manual/Sections.html b/Doc/Manual/Sections.html index ace14c758..65cfa88d6 100644 --- a/Doc/Manual/Sections.html +++ b/Doc/Manual/Sections.html @@ -62,6 +62,7 @@ Last update : SWIG-4.3.0 (in progress)

    Experimental Language Modules Documentation

    diff --git a/Doc/Manual/Warnings.html b/Doc/Manual/Warnings.html index 5de220e2a..d03f6b05a 100644 --- a/Doc/Manual/Warnings.html +++ b/Doc/Manual/Warnings.html @@ -373,7 +373,6 @@ example.i(4) : Syntax error in input(1).

    None currently.

    -

    19.9.2 Preprocessor (200-299)

    diff --git a/Doc/Manual/chapters b/Doc/Manual/chapters index f888848d5..f4cb4f365 100644 --- a/Doc/Manual/chapters +++ b/Doc/Manual/chapters @@ -20,7 +20,6 @@ Warnings.html Modules.html CCache.html Android.html -C.html CSharp.html D.html Go.html @@ -36,6 +35,7 @@ R.html Ruby.html Scilab.html Tcl.html +C.html Mzscheme.html Ocaml.html Extending.html