PageRenderTime 65ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 1ms

/tags/rel-2.0.3/CHANGES

#
#! | 1553 lines | 1186 code | 367 blank | 0 comment | 0 complexity | ee13345d31c1cf5711534a37ea0bc559 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0

Large files files are truncated, but you can click here to view the full file

  1. SWIG (Simplified Wrapper and Interface Generator)
  2. See the CHANGES.current file for changes in the current version.
  3. See the RELEASENOTES file for a summary of changes in each release.
  4. Version 2.0.2 (20 February 2011)
  5. ================================
  6. 2011-02-19: wsfulton
  7. [PHP] Add missing INPUT, OUTPUT and INOUT typemaps in the typemaps.i library
  8. for primitive reference types as well as signed char * and bool *.
  9. 2011-02-19: olly
  10. [PHP] Address bug in PHP on some platforms/architectures which
  11. results in zend_error_noreturn() not being available using
  12. SWIG_ZEND_ERROR_NORETURN which defaults to zend_error_noreturn but
  13. can be overridden when building the module by passing
  14. -DSWIG_ZEND_ERROR_NORETURN=zend_error to the compiler. This may
  15. result in compiler warnings, but should at least allow a module
  16. to be built on those platforms/architectures (SF#3166423).
  17. 2011-02-18: wsfulton
  18. Fix #3184549 - vararg functions and function overloading when using the -fastdispatch option.
  19. 2011-02-18: olly
  20. [PHP] An overloaded method which can return an object or a
  21. primitive type no longer causes SWIG to segfault. Reported by Paul
  22. Colby in SF#3168531.
  23. 2011-02-18: olly
  24. [PHP] Fix invalid erase during iteration of std::map in generated
  25. director code. Reported by Cory Bennett in SF#3175820.
  26. 2011-02-17: wsfulton
  27. Preprocessing now warns if extra tokens appear after #else and #end.
  28. 2011-02-16: wsfulton
  29. Fix #1653092 Preprocessor does not error out when #elif is missing an expression.
  30. This and other cases of missing preprocessor expressions now result in an error.
  31. 2011-02-14: wsfulton
  32. [Ocaml] Apply patch #3151788 from Joel Reymont. Brings Ocaml support up to date
  33. (ver 3.11 and 3.12), including std::string.
  34. 2011-02-13: wsfulton
  35. [Ruby] Apply patch #3176274 from James Masters - typecheck typemap for time_t.
  36. 2011-02-13: wsfulton
  37. Apply patch #3171793 from szager - protected director methods failing when -fvirtual is used.
  38. 2011-02-13: wsfulton
  39. Fix #1927852 - #include directives don't preprocess the file passed to it. The fix is for
  40. #include with -importall or -includeall, %include and %import, for example:
  41. #define FILENAME "abc.h"
  42. %include FILENAME
  43. 2011-02-12: wsfulton
  44. Fix #1940536, overactive preprocessor which was expanding defined(...) outside of #if and #elif
  45. preprocessor directives.
  46. 2011-02-05: wsfulton
  47. [MzScheme] SF #2942899 Add user supplied documentation to help getting started with MzScheme.
  48. Update chapter name to MzScheme/Racket accounting for the rename of MzScheme to Racket.
  49. 2011-02-05: wsfulton
  50. [C#] SF #3085906 - Possible fix running test-suite on Mac OSX.
  51. 2011-02-05: wsfulton
  52. SF #3173367 Better information during configure about Boost prerequisite for running
  53. the test-suite.
  54. 2011-02-05: wsfulton
  55. SF #3127633 Fix infinite loop in recursive typedef resolution.
  56. 2011-02-04: wsfulton
  57. [R] SF #3168676 Fix %rename not working for member variables and methods.
  58. 2011-02-04: wsfulton
  59. [clisp] SF #3148200 Fix segfault parsing nested unions.
  60. 2011-02-01: wsfulton
  61. [C#] Directors - a call to a method being defined in the base class, not
  62. overridden in a subclass, but again overridden in a class derived from
  63. the first subclass was not being dispatched correctly to the most derived class.
  64. See director_alternating.i for an example.
  65. 2011-02-01: wsfulton
  66. [C#, Java] Any 'using' statements in the protected section of a class were previously
  67. ignored with director protected (dirprot) mode.
  68. 2011-01-30: wsfulton
  69. Fix overloading with const pointer reference (SWIGTYPE *const&) parameters for a
  70. number of scripting languages.
  71. 2011-01-17: wsfulton
  72. New warning for smart pointers if only some of the classes in the inheritance
  73. chain are marked as smart pointer, eg, %shared_ptr should be used for all classes
  74. in an inheritance hierarchy, so this new warning highlights code where this is
  75. not the case.
  76. example.i:12: Warning 520: Base class 'A' of 'B' is not similarly marked as a smart pointer.
  77. example.i:16: Warning 520: Derived class 'C' of 'B' is not similarly marked as a smart pointer.
  78. 2011-01-14: wsfulton
  79. Added some missing multi-argument typemaps: (char *STRING, size_t LENGTH) and
  80. (char *STRING, int LENGTH). Documentation for this updated. Java patch from
  81. Volker Grabsch.
  82. 2011-01-11: iant
  83. Require Go version 7077 or later.
  84. 2010-12-30: klickverbot
  85. [C#, D, Java] Check for collision of parameter names with target
  86. language keywords when generating the director glue code.
  87. The situation in which the generated could would previously be
  88. invalid is illustrated in the new 'director_keywords' test case.
  89. 2010-12-23: wsfulton
  90. [C#] Fix $csinput special variable not being expanded for csvarin typemaps
  91. when used for global variables. Reported by Vadim Zeitlin.
  92. 2010-12-14: wsfulton
  93. Fix $basemangle expansion in array typemaps. For example if type is int *[3],
  94. $basemangle expands to _p_int.
  95. 2010-12-07: iant
  96. Check that we are using a sufficiently new version of the
  97. 6g or 8g Go compiler during configure time. If not, disable Go.
  98. Minimum version is now 6707.
  99. *** POTENTIAL INCOMPATIBILITY ***
  100. 2010-12-06: wsfulton
  101. Fix #3127394 - use of network paths on Windows/MSys.
  102. 2010-11-18: klickverbot
  103. [D] Added the D language module.
  104. 2010-11-12: vadz
  105. Fix handling of multiple regex-using %renames attached to the same
  106. declaration. For example, now
  107. %rename("%(regex/^Set(.*)/put\\1/)s") "";
  108. %rename("%(regex/^Get(.*)/get\\1/)s") "";
  109. works as expected whereas before only the last anonymous rename was
  110. taken into account.
  111. 2010-10-17: drjoe
  112. [R] Fix failure in overloaded functions which was breaking
  113. QuantLib-SWIG
  114. 2010-10-14: olly
  115. [PHP] Allow compilation on non-conforming Microsoft C++ compilers
  116. which don't accept: return function_returning_void();
  117. Reported by Frank Vanden Berghen on the SWIG mailing list.
  118. 2010-10-12: wsfulton
  119. Fix unary scope operator (::) (global scope) regression introduced in 2.0.0, reported by
  120. Ben Walker. The mangled symbol names were incorrect, sometimes resulting in types being
  121. incorrectly treated as opaque types.
  122. Also fixes #2958781 and some other type problems due to better typedef resolution, eg
  123. std::vector<T *>::value_type didn't resolve to T * when it should have. The mangled type
  124. was incorrectly SWIGTYPE_std__vectorT_Test_p_std__allocatorT_Test_p_t_t__value_type and now
  125. it is correctly SWIGTYPE_p_Test.
  126. Version 2.0.1 (4 October 2010)
  127. ==============================
  128. 2010-10-03: wsfulton
  129. Apply patch #3066958 from Mikael Johansson to fix default smart pointer
  130. handling when the smart pointer contains both a const and non-const operator->.
  131. 2010-10-01: wsfulton
  132. Add -pcreversion option to display PCRE version information.
  133. 2010-10-01: olly
  134. [Ruby] Avoid segfault when a method node has no parentNode
  135. (SF#3034054).
  136. 2010-10-01: olly
  137. [Python] Allow reinitialisation to work with an embedded Python
  138. interpreter (patch from Jim Carroll in SF#3075178).
  139. 2010-09-28: wsfulton
  140. [C#] Apply patch from Tomas Dirvanauskas for std::map wrappers to avoid
  141. throwing exceptions with normal usage of iterators.
  142. 2010-09-27: olly
  143. [Python] Improve error message given when a parameter of the wrong
  144. type is passed to an overloaded method (SF#3027355).
  145. 2010-09-25: wsfulton
  146. Apply SF patch #3075150 - Java directors using static variables in
  147. named namespace.
  148. 2010-09-24: wsfulton
  149. More file and line error/warning reporting fixes where SWIG macros
  150. are used within {} braces (where the preprocessor expands macros),
  151. for example macros within %inline {...} and %fragment(...) {...}
  152. and nested structs.
  153. 2010-09-18: wsfulton
  154. More file and line error/warning reporting fixes for various inherited
  155. class problems.
  156. 2010-09-15: wsfulton
  157. A much improved debugging of SWIG source experience is now available and
  158. documented in the "Debugging SWIG" section in the Doc/Devel/internals.html
  159. file, including a swig.dbg support file for the gdb debugger.
  160. 2010-09-11: wsfulton
  161. Fix incorrect line number reporting in errors/warnings when a macro
  162. definition ends with '/' and it is not the end of a C comment.
  163. 2010-09-11: wsfulton
  164. Fix incorrect line number reporting in errors/warnings after parsing
  165. macro invocations with parameters given over more than one line.
  166. 2010-09-10: wsfulton
  167. Remove extraneous extra line in preprocessed output after including files
  168. which would sometimes lead to error/warning messages two lines after the
  169. end of the file.
  170. 2010-09-10: wsfulton
  171. Fix #2149523 - Incorrect line number reporting in errors after parsing macros
  172. containing C++ comments.
  173. 2010-09-08: olly
  174. [PHP] Fix handling of OUTPUT typemaps (Patch from Ryan in SF#3058394).
  175. 2010-09-03: wsfulton
  176. Fix erroneous line numbers in error messages for macro expansions, for example,
  177. the error message now points to instantiation of the macro, ie the last line here:
  178. #define MACRO2(a, b)
  179. #define MACRO1(NAME) MACRO2(NAME,2,3)
  180. MACRO1(abc)
  181. 2010-09-02: wsfulton
  182. Fix line numbers in error and warning messages for preprocessor messages within
  183. %inline, for example:
  184. %inline %{
  185. #define FOOBAR 1
  186. #define FOOBAR "hi"
  187. %}
  188. 2010-09-02: wsfulton
  189. Fix line numbers in error and warning messages which were cumulatively one
  190. less than they should have been after parsing each %include/%import - bug
  191. introduced in swig-1.3.32. Also fix line numbers in error and warning messages
  192. when new line characters appear between the %include / %import statement and
  193. the filename.
  194. 2010-08-30: wsfulton
  195. Fix line number and file name reporting for some macro preprocessor warnings.
  196. The line number of the macro argument has been corrected and the line number
  197. of the start of the macro instead of one past the end of the macro is used.
  198. Some examples:
  199. file.h:11: Error: Illegal macro argument name '..'
  200. file.h:19: Error: Macro 'DUPLICATE' redefined,
  201. file.h:15: Error: previous definition of 'DUPLICATE'.
  202. file.h:25: Error: Variable-length macro argument must be last parameter
  203. file.h:32: Error: Illegal character in macro argument name
  204. file.i:37: Error: Macro 'SIT' expects 2 arguments
  205. 2010-08-26: wsfulton
  206. Fix __LINE__ and __FILE__ expansion reported by Camille Gillot. Mostly this
  207. did not work at all. Also fixes SF #2822822.
  208. 2010-08-17: wsfulton
  209. [Perl] Fix corner case marshalling of doubles - errno was not being correctly
  210. set before calling strtod - patch from Justin Vallon - SF Bug #3038936.
  211. 2010-08-17: wsfulton
  212. Fix make distclean when some of the more obscure languages are detected by
  213. configure - fixes from Torsten Landschoff.
  214. 2010-07-28: wsfulton
  215. Restore configuring out of source for the test-suite since it broke in 1.3.37.
  216. As previously, if running 'make check-test-suite' out of source, it needs to be
  217. done by invoking configure with a relative path. Invoking configure with an
  218. absolute path will not work. Running the full 'make check' still needs to be
  219. done in the source tree.
  220. 2010-07-16: wsfulton
  221. Fix wrapping of function pointers and member function pointers when the function
  222. returns by reference.
  223. 2010-07-13: vadz
  224. Removed support for the old experimental "rxspencer" encoder and
  225. "[not]rxsmatch" in %rename (see the 01/16/2006 entry). The new and
  226. officially supported "regex" encoder and "[not]regexmatch" checks
  227. should be used instead (see the two previous entries). Please
  228. replace "%(rxspencer:[pat][subst])s" with "%(regex:/pat/subst/)s"
  229. when upgrading. Notice that you will also need to replace the back-
  230. references of form "@1" with the more standard "\\1" and may need to
  231. adjust your regular expressions syntax as the new regex encoder uses
  232. Perl-compatible syntax and not (extended) POSIX syntax as the old one.
  233. *** POTENTIAL INCOMPATIBILITY ***
  234. 2010-07-13: vadz
  235. Add "regexmatch", "regextarget" and "notregexmatch" which can be
  236. used to apply %rename directives to the declarations matching the
  237. specified regular expression only. The first two can be used
  238. interchangeably, both of the %renames below do the same thing:
  239. %rename("$ignore", regexmatch$name="Old$") "";
  240. %rename("$ignore", regextarget=1) "Old$";
  241. (namely ignore the declarations having "Old" suffix).
  242. "notregexmatch" restricts the match to only the declarations which
  243. do not match the regular expression, e.g. here is how to rename to
  244. lower case versions all declarations except those consisting from
  245. capital letters only:
  246. %rename("$(lowercase)s", notregexmatch$name="^[A-Z]+$") "";
  247. 2010-07-13: vadz
  248. Add the new "regex" encoder that can be used in %rename, e.g.
  249. %rename("regex:/(\\w+)_(.*)/\\2/") "";
  250. to remove any alphabetical prefix from all identifiers. The syntax
  251. of the regular expressions is Perl-like and PCRE library
  252. (http://www.pcre.org/) is used to implement this feature but notice
  253. that backslashes need to be escaped as usual inside C strings.
  254. Original patch from Torsten Landschoff.
  255. 2010-07-08: wsfulton
  256. Fix #3024875 - shared_ptr of classes with non-public destructors. This also fixes
  257. the "unref" feature when used on classes with non-public destructors.
  258. 2010-06-17: ianlancetaylor
  259. [Go] Add the Go language module.
  260. 2010-06-10: wsfulton
  261. [Lua] Fix SWIG_lua_isnilstring multiply defined when using multiple
  262. modules and wrapping strings. Patch from 'Number Cruncher'.
  263. 2010-06-10: olly
  264. [PHP] Fix directors to correctly call a method with has a
  265. different name in PHP to C++ (we were always using the C++ name
  266. in this case).
  267. 2010-06-03: wsfulton
  268. Fix uncompileable code when %rename results in two enum items
  269. with the same name. Reported by Vadim Zeitlin.
  270. Version 2.0.0 (2 June 2010)
  271. ===========================
  272. 2010-06-02: wsfulton
  273. [C#] Fix SWIG_STD_VECTOR_ENHANCED macro used in std::vector to work with
  274. types containing commas, for example:
  275. SWIG_STD_VECTOR_ENHANCED(std::pair< double, std::string >)
  276. 2010-06-01: wsfulton
  277. Add in std_shared_ptr.i for wrapping std::shared_ptr. Requires the %shared_ptr
  278. macro like in the boost_shared_ptr.i library. std::tr1::shared_ptr can also be
  279. wrapped if the following macro is defined:
  280. #define SWIG_SHARED_PTR_SUBNAMESPACE tr1
  281. %include <std_shared_ptr.i>
  282. shared_ptr is also documented in Library.html now.
  283. 2010-05-27: wsfulton
  284. Add the ability for $typemap special variable macros to call other $typemap
  285. special variable macros, for example:
  286. %typemap(cstype) CC "CC"
  287. %typemap(cstype) BB "$typemap(cstype, CC)"
  288. %typemap(cstype) AA "$typemap(cstype, BB)"
  289. void hah(AA aa);
  290. This also fixes C# std::vector containers of shared_ptr and %shared_ptr.
  291. Also added diagnostics for $typemap with -debug-tmsearch, for example, the
  292. above displays additional diagnostic lines starting "Containing: ":
  293. example.i:34: Searching for a suitable 'cstype' typemap for: AA aa
  294. Looking for: AA aa
  295. Looking for: AA
  296. Using: %typemap(cstype) AA
  297. Containing: $typemap(cstype, BB)
  298. example.i:31: Searching for a suitable 'cstype' typemap for: BB
  299. Looking for: BB
  300. Using: %typemap(cstype) BB
  301. Containing: $typemap(cstype, CC)
  302. example.i:29: Searching for a suitable 'cstype' typemap for: CC
  303. Looking for: CC
  304. Using: %typemap(cstype) CC
  305. 2010-05-26: olly
  306. Fix %attribute2ref not to produce a syntax error if the last
  307. argument (AccessorMethod) is omitted. Patch from David Piepgras
  308. in SF#2235756.
  309. 2010-05-26: olly
  310. [PHP] When using %throws or %catches, SWIG-generated PHP5 wrappers
  311. now throw PHP Exception objects instead of giving a PHP error of
  312. type E_ERROR.
  313. This change shouldn't cause incompatibility issues, since you can't
  314. set an error handler for E_ERROR, so previously PHP would just exit
  315. which also happens for unhandled exceptions. The benefit is you can
  316. now catch them if you want to.
  317. Fixes SF#2545578 and SF#2955522.
  318. 2010-05-25: olly
  319. [PHP] Add missing directorin typemap for const std::string &.
  320. Fixes SF#3006404 reported by t-Legiaw.
  321. 2010-05-23: wsfulton
  322. [C#] Fix #2957375 - SWIGStringHelper and SWIGExceptionHelper not always being
  323. initialized before use in .NET 4 as the classes were not marked beforefieldinit.
  324. A static constructor has been added to the intermediary class like this:
  325. %pragma(csharp) imclasscode=%{
  326. static $imclassname() {
  327. }
  328. %}
  329. If you had added your own custom static constructor to the intermediary class in
  330. the same way as above, you will have to modify your approach to use static variable
  331. initialization or define SWIG_CSHARP_NO_IMCLASS_STATIC_CONSTRUCTOR - See csharphead.swg.
  332. *** POTENTIAL INCOMPATIBILITY ***
  333. 2010-05-23: wsfulton
  334. Fix #2408232. Improve shared_ptr and intrusive_ptr wrappers for classes in an
  335. inheritance hierarchy. No special treatment is needed for derived classes.
  336. The proxy class also no longer needs to be specified, it is automatically
  337. deduced. The following macros are deprecated:
  338. SWIG_SHARED_PTR(PROXYCLASS, TYPE)
  339. SWIG_SHARED_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE)
  340. and have been replaced by
  341. %shared_ptr(TYPE)
  342. Similarly for intrusive_ptr wrappers, the following macro is deprecated:
  343. SWIG_INTRUSIVE_PTR(PROXYCLASS, TYPE)
  344. SWIG_INTRUSIVE_PTR_DERIVED(PROXYCLASS, BASECLASSTYPE, TYPE)
  345. and have been replaced by
  346. %intrusive_ptr(TYPE)
  347. 2010-05-21: olly
  348. [PHP] Stop generating a bogus line of code in certain constructors.
  349. This was mostly harmless, but caused a PHP notice to be issued, if
  350. enabled (SF#2985684).
  351. 2010-05-18: wsfulton
  352. [Java] Fix member pointers on 64 bit platforms.
  353. 2010-05-14: wsfulton
  354. Fix wrapping of C++ enum boolean values reported by Torsten Landschoff:
  355. typedef enum { PLAY = true, STOP = false } play_state;
  356. 2010-05-14: olly
  357. [PHP] Fix wrapping of global variables which was producing
  358. uncompilable code in some cases.
  359. 2010-05-12: drjoe
  360. [R] Add two more changes from Wil Nolan. Get garbage
  361. collection to work. Implement newfree
  362. 2010-05-09: drjoe
  363. Fix bug reported by Wil Nolan change creation of string so
  364. that R 2.7.0+ can use char hashes
  365. 2010-05-07: wsfulton
  366. Apply patch #2955146 from Sergey Satskiy to fix expressions containing divide by
  367. operator in constructor initialization lists.
  368. 2010-05-05: wsfulton
  369. [R] Memory leak fix handling const std::string & inputs, reported by Will Nolan.
  370. 2010-05-01: wsfulton
  371. Typemap matching enhancement for non-default typemaps. Previously all
  372. qualifiers were stripped in one step, now they are stripped one at a time
  373. starting with the left most qualifier. For example, int const*const
  374. is first stripped to int *const then int *.
  375. *** POTENTIAL INCOMPATIBILITY ***
  376. 2010-04-25: bhy
  377. [Python] Fix #2985655 - broken constructor renaming.
  378. 2010-04-14: wsfulton
  379. Typemap fragments are now official and documented in Typemaps.html.
  380. 2010-04-09: wsfulton
  381. [Ruby] Fix #2048064 and #2408020.
  382. Apply Ubuntu patch to fix Ruby and std::vector wrappers with -minherit.
  383. https://bugs.launchpad.net/ubuntu/+source/swig1.3/+bug/522874
  384. 2010-04-09: wsfulton
  385. [Mzscheme] Apply Ubuntu patch to fix std::map wrappers:
  386. https://bugs.launchpad.net/ubuntu/+source/swig1.3/+bug/203876
  387. 2010-04-09: wsfulton
  388. [Python] Apply patch #2952374 - fix directors and the -nortti option.
  389. 2010-04-09: wsfulton
  390. [Lua] Fix #2887254 and #2946032 - SWIG_Lua_typename using wrong stack index.
  391. 2010-04-03: wsfulton
  392. [Python] Fix exceptions being thrown with the -threads option based on patch from Arto Vuori.
  393. Fixes bug #2818499.
  394. 2010-04-03: wsfulton
  395. Fix Makefile targets: distclean and maintainer-clean
  396. 2010-04-02: wsfulton
  397. [Lua] Fix char pointers, wchar_t pointers and char arrays so that nil can be passed as a
  398. valid value. Bug reported by Gedalia Pasternak.
  399. 2010-04-01: wsfulton
  400. Numerous subtle typemap matching rule fixes when using the default type. The typemap
  401. matching rules are to take a type and find the best default typemap (SWIGTYPE, SWIGTYPE* etc),
  402. then look for the next best match by reducing the chosen default type. The type deduction
  403. now follows C++ class template partial specialization matching rules.
  404. Below are the set of changes made showing the default type deduction
  405. along with the old reduced type and the new version of the reduced type:
  406. SWIGTYPE const &[ANY]
  407. new: SWIGTYPE const &[]
  408. old: SWIGTYPE (&)[ANY]
  409. SWIGTYPE *const [ANY]
  410. new: SWIGTYPE const [ANY]
  411. old: SWIGTYPE *[ANY]
  412. SWIGTYPE const *const [ANY]
  413. new: SWIGTYPE *const [ANY]
  414. old: SWIGTYPE const *[ANY]
  415. SWIGTYPE const *const &
  416. new: SWIGTYPE *const &
  417. old: SWIGTYPE const *&
  418. SWIGTYPE *const *
  419. new: SWIGTYPE const *
  420. old: SWIGTYPE **
  421. SWIGTYPE *const &
  422. new: SWIGTYPE const &
  423. old: SWIGTYPE *&
  424. Additionally, a const SWIGTYPE lookup is used now for any constant type. Some examples, where
  425. T is some reduced type, eg int, struct Foo:
  426. T const
  427. new: SWIGTYPE const
  428. old: SWIGTYPE
  429. T *const
  430. new: SWIGTYPE *const
  431. old: SWIGTYPE *
  432. T const[]
  433. new: SWIGTYPE const[]
  434. old: SWIGTYPE[]
  435. enum T const
  436. new: enum SWIGTYPE const
  437. old: enum SWIGTYPE
  438. T (*const )[]
  439. new: SWIGTYPE (*const )[]
  440. old: SWIGTYPE (*)[]
  441. Reminder: the typemap matching rules can now be seen for any types being wrapped by using
  442. either the -debug-tmsearch or -debug-tmused options.
  443. In practice this leads to some subtle matching rule changes and the majority of users
  444. won't notice any changes, except in the prime area of motivation for this change: Improve
  445. STL containers of const pointers and passing const pointers by reference. This is fixed
  446. because many of the STL containers use a type 'T const&' as parameters and when T is
  447. a const pointer, for example, 'K const*', then the full type is 'K const*const&'. This
  448. means that the 'SWIGTYPE *const&' typemaps now match when T is either a non-const or
  449. const pointer. Furthermore, some target languages incorrectly had 'SWIGTYPE *&' typemaps
  450. when these should have been 'SWIGTYPE *const&'. These have been corrected (Java, C#, Lua, PHP).
  451. *** POTENTIAL INCOMPATIBILITY ***
  452. 2010-03-13: wsfulton
  453. [Java] Some very old deprecated pragma warnings are now errors.
  454. 2010-03-13: wsfulton
  455. Improve handling of file names and directories containing double/multiple path separators.
  456. 2010-03-10: mutandiz (Mikel Bancroft)
  457. [allegrocl] Use fully qualified symbol name of cl::identity in emit_defun().
  458. 2010-03-06: wsfulton
  459. [Java] The intermediary JNI class modifiers are now public by default meaning these
  460. intermediary low level functions are now accessible by default from outside any package
  461. used. The proxy class pointer constructor and getCPtr() methods are also now public.
  462. These are needed in order for the nspace option to work without any other mods.
  463. The previous default of protected access can be restored using:
  464. SWIG_JAVABODY_METHODS(protected, protected, SWIGTYPE)
  465. %pragma(java) jniclassclassmodifiers = "class"
  466. 2010-03-06: wsfulton
  467. [C#] Added the nspace feature for C#. Documentation for the nspace feature is now available.
  468. 2010-03-04: wsfulton
  469. Added the nspace feature. This adds some improved namespace support. Currently only Java
  470. is supported for target languages, where C++ namespaces are automatically translated into
  471. Java packages. The feature only applies to classes,struct,unions and enums declared within
  472. a namespace. Methods and variables declared in namespaces still effectively have their
  473. namespaces flattened. Example usage:
  474. %feature(nspace) Outer::Inner1::Color;
  475. %feature(nspace) Outer::Inner2::Color;
  476. namespace Outer {
  477. namespace Inner1 {
  478. struct Color {
  479. ...
  480. };
  481. }
  482. namespace Inner2 {
  483. struct Color {
  484. ...
  485. };
  486. }
  487. }
  488. For Java, the -package option is also required when using the nspace feature. Say
  489. we use -package com.myco, the two classes can then be accessed as follows from Java:
  490. com.myco.Outer.Inner1.Color and com.myco.Outer.Inner2.Color.
  491. 2010-02-27: wsfulton
  492. [Python] Remove -dirvtable from the optimizations included by -O as it this option
  493. currently leads to memory leaks as reported by Johan Blake.
  494. 2010-02-27: wsfulton
  495. License code changes: SWIG Source is GPL-v3 and library code license is now clearer
  496. and is provided under a very permissive license. See http://www.swig.org/legal.html.
  497. 2010-02-13: wsfulton
  498. [Ruby] A few fixes for compiling under ruby-1.9.x including patch from 'Nibble'.
  499. 2010-02-13: wsfulton
  500. [Ruby] Apply patch from Patrick Bennett to fix RARRAY_LEN and RARRAY_PTR usage for Ruby 1.9.x
  501. used in various STL wrappers.
  502. 2010-02-13: wsfulton
  503. [C#, Java] Fix incorrect multiply defined symbol name error when an enum item
  504. and class name have the same name, as reported by Nathan Krieger. Example:
  505. class Vector {};
  506. namespace Text {
  507. enum Preference { Vector };
  508. }
  509. This also fixes other incorrect corner case target language symbol name clashes.
  510. 2010-02-11: wsfulton
  511. Add the -debug-lsymbols option for displaying the target language layer symbols.
  512. 2010-02-09: wsfulton
  513. Fix -MM and -MMD options on Windows. They were not omitting files in the SWIG library as
  514. they should be.
  515. 2010-02-08: wsfulton
  516. Fix #1807329 - When Makefile dependencies are being generated using the -M family of options
  517. on Windows, the file paths have been corrected to use single backslashes rather than double
  518. backslashes as path separators.
  519. 2010-02-06: wsfulton
  520. Fix #2918902 - language specific files not being generated in correct directory on
  521. Windows when using forward slashes for -o, for example:
  522. swig -python -c++ -o subdirectory/theinterface_wrap.cpp subdirectory/theinterface.i
  523. 2010-02-05: wsfulton
  524. Fix #2894405 - assertion when using -xmlout.
  525. 2010-01-28: wsfulton
  526. Fix typemap matching bug when a templated type has a typemap both specialized and not
  527. specialized. For example:
  528. template<typename T> struct XX { ... };
  529. %typemap(in) const XX & "..."
  530. %typemap(in) const XX< int > & "..."
  531. resulted in the 2nd typemap being applied for all T in XX< T >.
  532. 2010-01-22: wsfulton
  533. Fix #2933129 - typemaps not being found when the unary scope operator (::) is used to denote
  534. global scope, the typemap is now used in situations like this:
  535. struct X {};
  536. %typemap(in) const X & "..."
  537. void m(const ::X &);
  538. and this:
  539. struct X {};
  540. %typemap(in) const ::X & "..."
  541. void m(const X &);
  542. 2010-01-20: wsfulton
  543. Fix some unary scope operator (::) denoting global scope problems in the types generated
  544. into the C++ layer. Previously the unary scope operator was dropped in the generated code
  545. if the type had any sort of qualifier, for example when using pointers, references, like
  546. ::foo*, ::foo&, bar< ::foo* >.
  547. 2010-01-13: olly
  548. [PHP] Add datetime to the list of PHP predefined classes (patch
  549. from David Fletcher in SF#2931042).
  550. 2010-01-11: wsfulton
  551. Slight change to warning, error and diagnostic reporting. The warning number is no
  552. longer shown within brackets. This is to help default parsing of warning messages by
  553. other tools, vim on Unix in particular.
  554. Example original display using -Fstandard:
  555. example.i:20: Warning(401): Nothing known about base class 'B'. Ignored.
  556. New display:
  557. example.i:20: Warning 401: Nothing known about base class 'B'. Ignored.
  558. Also subtle fix to -Fmicrosoft format adding in missing space. Example original display:
  559. example.i(20): Warning(401): Nothing known about base class 'Base'. Ignored.
  560. New display:
  561. example.i(20) : Warning 401: Nothing known about base class 'Base'. Ignored.
  562. 2010-01-10: wsfulton
  563. Fix a few inconsistencies in reporting of file/line numberings including modifying
  564. the overload warnings 509, 512, 516, 474, 475 to now be two line warnings.
  565. 2010-01-10: wsfulton
  566. Modify -debug-tags output to use standard file name/line reporting so that editors
  567. can easily navigate to the appropriate lines.
  568. Was typically:
  569. . top . include . include (/usr/share/swig/temp/trunk/Lib/swig.swg:312)
  570. . top . include . include . include (/usr/share/swig/temp/trunk/Lib/swigwarnings.swg:39)
  571. now:
  572. /usr/share/swig/temp/trunk/Lib/swig.swg:312: . top . include . include
  573. /usr/share/swig/temp/trunk/Lib/swigwarnings.swg:39: . top . include . include . include
  574. 2010-01-03: wsfulton
  575. Fix missing file/line numbers for typemap warnings and in output from the
  576. -debug-tmsearch/-debug-tmused options.
  577. 2010-01-03: wsfulton
  578. Add typemaps used debugging option (-debug-tmused). When used each line displays
  579. the typemap used for each type for which code is being generated including the file
  580. and line number related to the type. This is effectively a condensed form of the
  581. -debug-tmsearch option. Documented in Typemaps.html.
  582. 2009-12-23: wsfulton
  583. Fix for %javaexception and directors so that all the appropriate throws clauses
  584. are generated. Problem reported by Peter Greenwood.
  585. 2009-12-20: wsfulton
  586. Add -debug-tmsearch option for debugging the typemap pattern matching rules.
  587. Documented in Typemaps.html.
  588. 2009-12-12: wsfulton
  589. [Octave] Remove the -api option and use the new OCTAVE_API_VERSION_NUMBER
  590. macro provided in the octave headers for determining the api version instead.
  591. 2009-12-04: olly
  592. [Ruby] Improve support for Ruby 1.9 under GCC. Addresses part of
  593. SF#2859614.
  594. 2009-12-04: olly
  595. Fix handling of modulo operator (%) in constant expressions
  596. (SF#2818562).
  597. 2009-12-04: olly
  598. [PHP] "empty" is a reserved word in PHP, so rename empty() method
  599. on STL classes to "is_empty()" (previously this was automatically
  600. renamed to "c_empty()").
  601. *** POTENTIAL INCOMPATIBILITY ***
  602. 2009-12-03: olly
  603. [PHP] Add typemaps for long long and unsigned long long, and for
  604. pointer to method.
  605. 2009-12-02: olly
  606. [PHP] Fix warning and rename of reserved class name to be case
  607. insensitive.
  608. 2009-12-01: wsfulton
  609. Revert support for %extend and memberin typemaps added in swig-1.3.39. The
  610. memberin typemaps are ignored again for member variables within a %extend block.
  611. Documentation inconsistency reported by Torsten Landschoff.
  612. 2009-11-29: wsfulton
  613. [Java, C#] Fix generated quoting when using %javaconst(1)/%csconst(1) for
  614. static const char member variables.
  615. %javaconst(1) A;
  616. %csconst(1) A;
  617. struct X {
  618. static const char A = 'A';
  619. };
  620. 2009-11-26: wsfulton
  621. [Java, C#] Fix %javaconst(1)/%csconst(1) for static const member variables to
  622. use the actual constant value if it is specified, rather than the C++ code to
  623. access the member.
  624. %javaconst(1) EN;
  625. %csconst(1) EN;
  626. struct X {
  627. static const int EN = 2;
  628. };
  629. 2009-11-23: wsfulton
  630. C++ nested typedef classes can now be handled too, for example:
  631. struct Outer {
  632. typedef Foo { } FooTypedef1, FooTypedef2;
  633. };
  634. 2009-11-18: wsfulton
  635. The wrappers for C nested structs are now generated in the same order as declared
  636. in the parsed code.
  637. 2009-11-18: wsfulton
  638. Fix #491476 - multiple declarations of nested structs, for example:
  639. struct Outer {
  640. struct {
  641. int val;
  642. } inner1, inner2, *inner3, inner4[1];
  643. } outer;
  644. 2009-11-17: wsfulton
  645. Fix parsing of enum declaration and initialization, for example:
  646. enum ABC {
  647. a,
  648. b,
  649. c
  650. } A = a, *pC = &C, array[3] = {a, b, c};
  651. 2009-11-17: wsfulton
  652. Fix parsing of struct declaration and initialization, for example:
  653. struct S {
  654. int x;
  655. } instance = { 10 };
  656. 2009-11-15: wsfulton
  657. Fix #1960977 - Syntax error parsing derived nested class declaration and member
  658. variable instance.
  659. 2009-11-14: wsfulton
  660. Fix #2310483 - function pointer typedef within extern "C" block.
  661. 2009-11-13: wsfulton
  662. Fix usage of nested template classes within templated classes so that compileable code
  663. is generated.
  664. 2009-11-13: olly
  665. [php] Fix place where class prefix (as specified with -prefix)
  666. wasn't being used. Patch from gverbruggen in SF#2892647.
  667. 2009-11-12: wsfulton
  668. Fix usage of nested template classes so that compileable code is generated - the nested
  669. template class is now treated like a normal nested classes, that is, as an opaque type
  670. unless the nestedworkaround feature is used.
  671. 2009-11-12: wsfulton
  672. Replace SWIGWARN_PARSE_NESTED_CLASS with SWIGWARN_PARSE_NAMED_NESTED_CLASS and
  673. SWIGWARN_PARSE_UNNAMED_NESTED_CLASS for named and unnamed nested classes respectively.
  674. Named nested class ignored warnings can now be suppressed by name using %warnfilter, eg:
  675. %warnfilter(SWIGWARN_PARSE_NAMED_NESTED_CLASS) Outer::Inner;
  676. but clearly unnamed nested classes cannot and the global suppression is still required, eg:
  677. #pragma SWIG nowarn=SWIGWARN_PARSE_UNNAMED_NESTED_CLASS
  678. 2009-11-11: wsfulton
  679. Added the nestedworkaround feature as a way to use the full functionality of a nested class
  680. (C++ mode only). It removes the nested class from SWIG's type information so it is as if SWIG
  681. had never parsed the nested class. The documented nested class workarounds using a global
  682. fake class stopped working when SWIG treated the nested class as an opaque pointer, and
  683. this feature reverts this behaviour. The documentation has been updated with details of how
  684. to use and implement it, see the "Nested classes" section in SWIGPlus.html.
  685. 2009-11-11: wsfulton
  686. There were a number of C++ cases where nested classes/structs/unions were being handled
  687. as if C code was being parsed which would oftentimes lead to uncompileable code as an
  688. attempt was made to wrap the nested structs like it is documented for C code. Now all
  689. nested structs/classes/unions are ignored in C++ mode, as was always documented. However,
  690. there is an improvement as usage of nested structs/classes/unions is now always treated
  691. as an opaque type by default, resulting in generated code that should always compile.
  692. *** POTENTIAL INCOMPATIBILITY ***
  693. 2009-11-09: drjoe
  694. Fix R for -fcompact and add std_map.i
  695. 2009-11-08: wsfulton
  696. Fix inconsistency for nested structs/unions/classes. Uncompileable code was being
  697. generated when inner struct and union declarations were used as types within the
  698. inner struct. The inner struct/union is now treated as a forward declaration making the
  699. behaviour the same as an inner class. (C++ code), eg:
  700. struct Outer {
  701. struct InnerStruct { int x; };
  702. InnerStruct* getInnerStruct();
  703. };
  704. 2009-11-08: wsfulton
  705. Ignored nested class/struct warnings now display the name of the ignored class/struct.
  706. 2009-11-07: wsfulton
  707. Bug #1514681 - Fix nested template classes within a namespace generated uncompileable
  708. code and introduced strange side effects to other wrapper code especially code
  709. after the nested template class. Note that nested template classes are still ignored.
  710. 2009-11-07: wsfulton
  711. Add new debug options:
  712. -debug-symtabs - Display symbol tables information
  713. -debug-symbols - Display target language symbols in the symbol tables
  714. -debug-csymbols - Display C symbols in the symbol tables
  715. 2009-11-03: wsfulton
  716. Fix some usage of unary scope operator (::) denoting global scope, for example:
  717. namespace AA { /* ... */ }
  718. using namespace ::AA;
  719. and bug #1816802 - SwigValueWrapper should be used:
  720. struct CC {
  721. CC(int); // no default constructor
  722. };
  723. ::CC x();
  724. and in template parameter specializations:
  725. struct S {};
  726. template <typename T> struct X { void a() {}; };
  727. template <> struct X<S> { void b() {}; };
  728. %template(MyTConcrete) X< ::S >;
  729. plus probably some other corner case usage of ::.
  730. 2009-11-02: olly
  731. [Python] Fix potential memory leak in initialisation code for the
  732. generated module.
  733. 2009-10-23: wsfulton
  734. Fix seg fault when using a named nested template instantiation using %template(name)
  735. within a class. A warning that these are not supported is now issued plus processing
  736. continues as if no name was given.
  737. 2009-10-20: wsfulton
  738. [Python] Fix std::vector<const T*>. This would previously compile, but not run correctly.
  739. 2009-10-20: wsfulton
  740. Fixed previously fairly poor template partial specialization and explicit
  741. specialization support. Numerous bugs in this area have been fixed including:
  742. - Template argument deduction implemented for template type arguments, eg this now
  743. works:
  744. template<typename T> class X {};
  745. template<typename T> class X<T *> {};
  746. %template(X1) X<const int *>; // Chooses T * specialization
  747. and more complex cases with multiple parameters and a mix of template argument
  748. deduction and explicitly specialised parameters, eg:
  749. template <typename T1, typename T2> struct TwoParm { void a() {} };
  750. template <typename T1> struct TwoParm<T1 *, int *> { void e() {} };
  751. %template(E) TwoParm<int **, int *>;
  752. Note that the primary template must now be in scope, like in C++, when
  753. an explicit or partial specialization is instantiated with %template.
  754. *** POTENTIAL INCOMPATIBILITY ***
  755. 2009-09-14: wsfulton
  756. [C#] Add %csattributes for adding C# attributes to enum values, see docs for example.
  757. 2009-09-11: wsfulton
  758. Fix memmove regression in cdata.i as reported by Adriaan Renting.
  759. 2009-09-07: wsfulton
  760. Fix constant expressions containing <= or >=.
  761. 2009-09-02: wsfulton
  762. The following operators in constant expressions now result in type bool for C++
  763. wrappers and remain as type int for C wrappers, as per each standard:
  764. && || == != < > <= >= (Actually the last 4 are still broken). For example:
  765. #define A 10
  766. #define B 10
  767. #define A_EQ_B A == B // now wrapped as type bool for C++
  768. #define A_AND_B A && B // now wrapped as type bool for C++
  769. 2009-09-02: wsfulton
  770. Fix #2845746. true and false are now recognised keywords (only when wrapping C++).
  771. Constants such as the following are now wrapped (as type bool):
  772. #define FOO true
  773. #define BAR FOO && false
  774. Version 1.3.40 (18 August 2009)
  775. ===============================
  776. 2009-08-17: olly
  777. [Perl] Add "#undef do_exec" to our clean up of Perl global
  778. namespace pollution.
  779. 2009-08-17: olly
  780. [PHP] Fix to wrap a resource returned by __get() in a PHP object (SF#2549217).
  781. 2009-08-17: wsfulton
  782. Fix #2797485 After doing a 'make clean', install fails if yodl2man or yodl2html
  783. is not available.
  784. 2009-08-16: wsfulton
  785. [Octave] Caught exceptions display the type of the C++ exception instead of the
  786. generic "c++-side threw an exception" message.
  787. 2009-08-16: wsfulton
  788. [Java] When %catches is used, fix so that any classes specified in the "throws"
  789. attribute of the "throws" typemap are generated into the Java method's throws clause.
  790. 2009-08-16: wsfulton
  791. [C#] Fix exception handling when %catches is used, reported by Juan Manuel Alvarez.
  792. 2009-08-15: wsfulton
  793. Fix %template seg fault on some cases of overloading the templated method.
  794. Bug reported by Jan Kupec.
  795. 2009-08-15: wsfulton
  796. [Ruby] Add numerous missing wrapped methods for std::vector<bool> specialization
  797. as reported by Youssef Jones.
  798. 2009-08-14: wsfulton
  799. [Perl] Add SWIG_ConvertPtrAndOwn() method into the runtime for smart pointer
  800. memory ownership control. shared_ptr support still to be added. Patch from
  801. David Fletcher.
  802. 2009-08-14: olly
  803. [PHP] PHP5 now wraps static member variables as documented.
  804. 2009-08-14: olly
  805. [PHP] Update the PHP "class" example to work with PHP5 and use
  806. modern wrapping features.
  807. 2009-08-13: wsfulton
  808. [PHP] std::vector wrappers overhaul. They no longer require the
  809. specialize_std_vector() macro. Added wrappers for capacity() and reserve().
  810. 2009-08-13: wsfulton
  811. [PHP] Add const reference typemaps. const reference primitive types are
  812. now passed by value rather than pointer like the other target languages.
  813. Fixes SF#2524029.
  814. 2009-08-08: wsfulton
  815. [Python] More user friendly AttributeError is raised when there are
  816. no constructors generated for the proxy class in the event that the
  817. class is abstract - the error message is now
  818. "No constructor defined - class is abstract" whereas if there are no
  819. public constructors for any other reason and the class is not abstract,
  820. the message remains
  821. "No constructor defined".
  822. [tcl] Similarly for tcl when using -itcl.
  823. 2009-08-04: olly
  824. [PHP] Fix generated code to work with PHP 5.3.
  825. 2009-08-04: vmiklos
  826. [PHP] Various mathematical functions (which would conflict
  827. with the built-in PHP ones) are now automatically handled by
  828. adding a 'c_' prefix.
  829. 2009-08-03: wsfulton
  830. [C#] The std::vector<T> implementation is improved and now uses $typemap such
  831. that the proxy class for T no longer has to be specified in some macros
  832. for correct C# compilation; the following macros are deprecated, where
  833. CSTYPE was the C# type for the C++ class CTYPE:
  834. SWIG_STD_VECTOR_SPECIALIZE_MINIMUM(CSTYPE, CTYPE)
  835. usage should be removed altogether
  836. SWIG_STD_VECTOR_SPECIALIZE(CSTYPE, CTYPE)
  837. should be replaced with:
  838. SWIG_STD_VECTOR_ENHANCED(CTYPE)
  839. Some more details in csharp/std_vector.i
  840. *** POTENTIAL INCOMPATIBILITY ***
  841. 2009-07-31: olly
  842. [Python] Fix indentation so that we give a useful error if the
  843. module can't be loaded. Patch from Gaetan Lehmann in SF#2829853.
  844. 2009-07-29: wsfulton
  845. Add $typemap(method, typelist) special variable macro. This allows
  846. the contents of a typemap to be inserted within another typemap.
  847. Fully documented in Typemaps.html.
  848. 2009-07-29: vmiklos
  849. [PHP] Static member variables are now prefixed with the
  850. class name. This allows static member variables with the
  851. same name in different classes.
  852. 2009-07-29: olly
  853. [Python] Add missing locks to std::map wrappers. Patch from
  854. Paul Hampson in SF#2813836.
  855. 2009-07-29: olly
  856. [PHP] Fix memory leak in PHP OUTPUT typemaps. Reported by Hitoshi
  857. Amano in SF#2826322.
  858. 2009-07-29: olly
  859. [PHP] Fix memory leak in PHP resource destructor for classes
  860. without a destructor and non-class types. Patch from Hitoshi Amano
  861. in SF#2825303.
  862. 2009-07-28: olly
  863. [PHP] Update warnings about clashes between identifiers and PHP
  864. keywords and automatic renaming to work with the PHP5 class
  865. wrappers. Fixes SF#1613679.
  866. 2009-07-28: vmiklos
  867. [PHP] If a member function is not public but it has a base
  868. which is public, then now a warning is issued and the member
  869. function will be public, as PHP requires this.
  870. 2009-07-21: vmiklos
  871. [PHP] Director support added.
  872. 2009-07-15: olly
  873. [Perl] Don't specify Perl prototype "()" for a constructor with a
  874. different name to the class, as such constructors can still take
  875. parameters.
  876. 2009-07-12: xavier98
  877. [Octave] Add support for Octave 3.2 API
  878. 2009-07-05: olly
  879. [PHP] Update the list of PHP keywords - "cfunction" is no longer a
  880. keyword in PHP5 and PHP 5.3 added "goto", "namespace", "__DIR__",
  881. and "__NAMESPACE__".
  882. 2009-07-03: olly
  883. [Tcl] To complement USE_TCL_STUBS, add support for USE_TK_STUBS
  884. and SWIG_TCL_STUBS_VERSION. Document all three in the Tcl chapter
  885. of the manual. Based on patch from SF#2810380 by Christian
  886. Gollwitzer.
  887. 2009-07-02: vmiklos
  888. [PHP] Added factory.i for PHP, see the li_factory testcase
  889. for more info on how to use it.
  890. 2009-07-02: wsfulton
  891. Fix -Wallkw option as reported by Solomon Gibbs.
  892. 2009-07-02: wsfulton
  893. Fix syntax error when a nested struct contains a comment containing a * followed
  894. eventually by a /. Regression from 1.3.37, reported by Solomon Gibbs.
  895. 2009-07-01: vmiklos
  896. [PHP] Unknown properties are no longer ignored in proxy
  897. classes.
  898. 2009-07-01: vmiklos
  899. [PHP] Fixed %newobject behaviour, previously any method
  900. marked with %newobject was handled as a constructor.
  901. 2009-06-30: olly
  902. [Ruby] Undefine close and connect macros defined by Ruby API
  903. headers as we don't need them and they can clash with C++ methods
  904. being wrapped. Patch from Vit Ondruch in SF#2814430.
  905. 2009-06-26: olly

Large files files are truncated, but you can click here to view the full file