PageRenderTime 88ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/tags/rel-2.0.4/CHANGES

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

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