PageRenderTime 65ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/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
  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
  906. [Ruby] Fix to handle FIXNUM values greater than MAXINT passed for a
  907. double parameter.
  908. 2009-06-24: wsfulton
  909. Fix wrapping methods with default arguments and the compactdefaultargs feature
  910. where a class is passed by value and is assigned a default value. The SwigValueWrapper
  911. template workaround for a missing default constructor is no longer used as the code
  912. generated does not call the default constructor.
  913. 2009-06-16: wsfulton
  914. [Java,C#] Fix enum marshalling when %ignore is used on one of the enum items.
  915. Incorrect enum values were being passed to the C++ layer or compilation errors resulted.
  916. 2009-06-02: talby
  917. [Perl] Resolved reference.i overload support problem
  918. identified by John Potowsky.
  919. 2009-05-26: wsfulton
  920. [C#] Improved std::map wrappers based on patch from Yuval Baror. The C# proxy
  921. now implements System.Collections.Generic.IDictionary<>.
  922. These std:map wrappers have a non-backwards compatible overhaul to make them
  923. like a .NET IDictionary. Some method names have changed as following:
  924. set -> setitem (use this[] property now)
  925. get -> getitem (use this[] property now)
  926. has_key -> ContainsKey
  927. del -> Remove
  928. clear -> Clear
  929. The following macros used for std::map wrappers are deprecated and will no longer work:
  930. specialize_std_map_on_key
  931. specialize_std_map_on_value
  932. specialize_std_map_on_both
  933. *** POTENTIAL INCOMPATIBILITY ***
  934. 2009-05-20: vmiklos
  935. [PHP] Add the 'thisown' member to classes. The usage of it
  936. is the same as the Python thisown one: it's 1 by default and
  937. you can set it to 0 if you want to prevent freeing it. (For
  938. example to prevent a double free.)
  939. 2009-05-14: bhy
  940. [Python] Fix the wrong pointer value returned by SwigPyObject_repr().
  941. 2009-05-13: mutandiz (Mikel Bancroft)
  942. [allegrocl] Minor tweak when wrapping in -nocwrap mode.
  943. 2009-05-11: wsfulton
  944. [C#] Improved std::vector wrappers on the C# proxy side from Yuval Baror. These
  945. implement IList<> instead of IEnumerable<> where possible.
  946. 2009-04-29: wsfulton
  947. [Java, C#] Add the 'notderived' attribute to the javabase and csbase typemaps.
  948. When this attribute is set, the typemap will not apply to classes that are derived
  949. from a C++ base class, eg
  950. %typemap(csbase, notderived="1") SWIGTYPE "CommonBase"
  951. 2009-04-29: olly
  952. [Python] Don't attempt to acquire the GIL in situations where we
  953. know that it will already be locked. This avoids some dead-locks
  954. with mod_python (due to mod_python bugs which are apparently
  955. unlikely to ever be fixed), and results in smaller wrappers which
  956. run a little faster (in tests with Xapian on x86-64 Ubuntu 9.04,
  957. the stripped wrapper library was 11% smaller and ran 2.7% faster).
  958. 2009-04-21: wsfulton
  959. [C#] Fix #2753469 - bool &OUTPUT and bool *OUTPUT typemaps initialisation.
  960. 2009-04-09: wsfulton
  961. Fix #2746858 - C macro expression using floating point numbers
  962. 2009-03-30: olly
  963. [PHP] The default out typemap for char[ANY] now returns the string up to a
  964. zero byte, or the end of the array if there is no zero byte. This
  965. is the same as Python does, and seems more generally useful than
  966. the previous behaviour of returning the whole contents of the array
  967. including any zero bytes. If you want the old behaviour, you can provide
  968. your own typemap to do this:
  969. %typemap(out) char [ANY]
  970. %{
  971. RETVAL_STRINGL($1, $1_dim0, 1);
  972. %}
  973. Version 1.3.39 (21 March 2009)
  974. ==============================
  975. 2009-03-19: bhy
  976. [Python] Fix the memory leak related to Python 3 unicode and C char* conversion,
  977. which can be shown in the following example before this fix:
  978. from li_cstring import *
  979. i=0
  980. while True:
  981. i += 1
  982. n = str(i)*10
  983. test3(n)
  984. This fix affected SWIG_AsCharPtrAndSize() so you cannot call this function with
  985. a null alloc and non-null cptr argument in Python 3, otherwise a runtime error
  986. will be raised.
  987. 2009-03-18: wsfulton
  988. [C#] std::vector<T> wrapper improvements for .NET 2 and also providing the
  989. necessary machinery to use the std::vector<T> wrappers with more advanced features such
  990. as LINQ - the C# proxy class now derives from IEnumerable<>. The default is now to
  991. generate code requiring .NET 2 as a minimum, although the C# code can be compiled
  992. for .NET 1 by defining the SWIG_DOTNET_1 C# preprocessor constant. See the
  993. std_vector.i file for more details.
  994. *** POTENTIAL INCOMPATIBILITY ***
  995. 2009-03-12: wsfulton
  996. [Ruby] Fix #2676738 SWIG generated symbol name clashes.
  997. 2009-03-01: bhy
  998. [Python] Some fixes for Python 3.0.1 and higher support. In 3.0.1, the C API function
  999. PyObject_Compare is removed, so PyObject_RichCompareBool is used for replacement.
  1000. Struct initilization of SwigPyObject and SwigPyObject_as_number changed to reflect
  1001. the drop of tp_compare and nb_long.
  1002. 2009-03-01: bhy
  1003. [Python] Fix SF#2583160. Now the importer in Python shadow wrapper take care of the
  1004. case that module already imported at other place.
  1005. 2009-02-28: bhy
  1006. [Python] Fix SF#2637352. Move struct declaration of SWIG_module in pyinit.swg before
  1007. the method calls, since some C compiler don't allow declaration in middle of function
  1008. body.
  1009. 2009-02-21: wsfulton
  1010. [Allegrocl] Fix seg fault wrapping some constant variable (%constant) types.
  1011. 2009-02-20: wsfulton
  1012. [CFFI] Fix seg faults when for %extend and using statements.
  1013. 2009-02-20: wsfulton
  1014. Fix SF #2605955: -co option which broke in 1.3.37.
  1015. 2009-02-20: wsfulton
  1016. New %insert("begin") section added. Also can be used as %begin. This is a new
  1017. code section reserved entirely for users and the code within the section is generated
  1018. at the top of the C/C++ wrapper file and so provides a means to put custom code
  1019. into the wrapper file before anything else that SWIG generates.
  1020. 2009-02-17: wsfulton
  1021. 'make clean-test-suite' will now run clean on ALL languages. Previously it only
  1022. ran the correctly configured languages. This way it is now possible to clean up
  1023. properly after running 'make partialcheck-test-suite'.
  1024. 2009-02-14: wsfulton
  1025. Extend attribute library support for structs/classes and the accessor functions use
  1026. pass/return by value semantics. Two new macros are available and usage is identical
  1027. to %attribute. These are %attributeval for structs/classes and %attributestring for
  1028. string classes, like std::string. See attribute.swg for more details.
  1029. 2009-02-13: wsfulton
  1030. Add support for %extend and memberin typemaps. Previously the memberin typemaps were
  1031. ignored for member variables within a %extend block.
  1032. 2009-02-12: wsfulton
  1033. Remove unnecessary temporary variable when wrapping return values that are references.
  1034. Example of generated code for wrapping:
  1035. struct XYZ {
  1036. std::string& refReturn();
  1037. };
  1038. used to be:
  1039. std::string *result = 0 ;
  1040. ...
  1041. {
  1042. std::string &_result_ref = (arg1)->refReturn();
  1043. result = (std::string *) &_result_ref;
  1044. }
  1045. Now it is:
  1046. std::string *result = 0 ;
  1047. ...
  1048. result = (std::string *) &(arg1)->refReturn();
  1049. 2009-02-08: bhy
  1050. Change the SIZE mapped by %pybuffer_mutable_binary and %pybuffer_binary in pybuffer.i from
  1051. the length of the buffer to the number of items in the buffer.
  1052. 2009-02-08: wsfulton
  1053. Fix %feature not working for conversion operators, reported by Matt Sprague, for example:
  1054. %feature("cs:methodmodifiers") operator bool "protected";
  1055. 2009-02-07: wsfulton
  1056. [MzScheme] Apply #2081967 configure changes for examples to build with recent PLT versions.
  1057. Also fixes Makefile errors building SWIG executable when mzscheme package is installed
  1058. (version 3.72 approx and later).
  1059. 2009-02-04: talby
  1060. [Perl] Fix SF#2564192 reported by David Kolovratnk.
  1061. SWIG_AsCharPtrAndSize() now handles "get" magic.
  1062. Version 1.3.38 (31 January 2009)
  1063. ================================
  1064. 2009-01-31: bhy
  1065. [Python] Fix SF#2552488 reported by Gaetan Lehmann. Now %pythonprepend
  1066. and %pythonappend have correct indentation.
  1067. 2009-01-31: bhy
  1068. [Python] Fix SF#2552048 reported by Gaetan Lehmann. The parameter list
  1069. of static member function in generated proxy code should not have the
  1070. 'self' parameter.
  1071. 2009-01-29: wsfulton
  1072. Fix regression introduced in 1.3.37 where the default output directory
  1073. for target language specific files (in the absence of -outdir) was no
  1074. longer the same directory as the generated c/c++ file.
  1075. 2009-01-28: wsfulton
  1076. [Java, C#] Fix proxy class not being used when the global scope operator
  1077. was used for parameters passed by value. Reported by David Piepgrass.
  1078. 2009-01-15: wsfulton
  1079. [Perl] Fix seg fault when running with -v option, reported by John Ky.
  1080. Version 1.3.37 (13 January 2009)
  1081. ================================
  1082. 2009-01-13: mgossage
  1083. [Lua] Added contract support for requiring that unsigned numbers are >=0
  1084. Rewrote much of Examples/Lua/embed3.
  1085. Added a lot to the Lua documentation.
  1086. 2009-01-13: wsfulton
  1087. Fix compilation error when using directors on protected virtual overloaded
  1088. methods reported by Sam Hendley.
  1089. 2009-01-12: drjoe
  1090. [R] Fixed handling of integer arrays
  1091. 2009-01-10: drjoe
  1092. [R] Fix integer handling in r to deal correctly with signed
  1093. and unsigned issues
  1094. 2009-01-10: wsfulton
  1095. Patch #1992756 from Colin McDonald - %contract not working for classes
  1096. in namespace
  1097. 2009-01-05: olly
  1098. Mark SWIGPERL5, SWIGPHP5, and SWIGTCL8 as deprecated in the source
  1099. code and remove documentation of them.
  1100. 2008-12-30: wsfulton
  1101. Bug #2430756. All the languages now define a macro in the generated C/C++
  1102. wrapper file indicating which language is being wrapped. The macro name is the
  1103. same as those defined when SWIG is run, eg SWIGJAVA, SWIGOCTAVE, SWIGCSHARP etc
  1104. and are listed in the "Conditional Compilation" section in the documentation.
  1105. 2008-12-23: wsfulton
  1106. [Java] Fix #2153773 - %nojavaexception was clearing the exception feature
  1107. instead of disabling it. Clearing checked Java exceptions also didn't work.
  1108. The new %clearjavaexception can be used for clearing the exception feature.
  1109. 2008-12-22: wsfulton
  1110. Fix #2432801 - Make SwigValueWrapper exception safe for when copy constructors
  1111. throw exceptions.
  1112. 2008-12-21: wsfulton
  1113. Apply patch #2440046 which fixes possible seg faults for member and global
  1114. variable char arrays when the strings are larger than the string array size.
  1115. 2008-12-20: wsfulton
  1116. The ccache compiler cache has been adapted to work with SWIG and
  1117. named ccache-swig. It now works with C/C++ compilers as well as SWIG
  1118. and can result in impressive speedups when used to recompile unchanged
  1119. code with either a C/C++ compiler or SWIG. Documentation is in CCache.html
  1120. or the installed ccache-swig man page.
  1121. 2008-12-12: wsfulton
  1122. Apply patch from Kalyanov Dmitry which fixes parsing of nested structs
  1123. containing comments.
  1124. 2008-12-12: wsfulton
  1125. Fix error message in some nested struct and %inline parsing error situations
  1126. such as unterminated strings and comments.
  1127. 2008-12-07: olly
  1128. [PHP] Fix warnings when compiling generated wrapper with GCC 4.3.
  1129. 2008-12-06: wsfulton
  1130. [PHP] Deprecate %pragma(php4). Please use %pragma(php) instead.
  1131. The following two warnings have been renamed:
  1132. WARN_PHP4_MULTIPLE_INHERITANCE -> WARN_PHP_MULTIPLE_INHERITANCE
  1133. WARN_PHP4_UNKNOWN_PRAGMA -> WARN_PHP_UNKNOWN_PRAGMA
  1134. *** POTENTIAL INCOMPATIBILITY ***
  1135. 2008-12-04: bhy
  1136. [Python] Applied patch SF#2158938: all the SWIG symbol names started with Py
  1137. are changed, since they are inappropriate and discouraged in Python
  1138. documentation (from http://www.python.org/doc/2.5.2/api/includes.html):
  1139. "All user visible names defined by Python.h (except those defined by
  1140. the included standard headers) have one of the prefixes "Py" or "_Py".
  1141. Names beginning with "_Py" are for internal use by the Python implementation
  1142. and should not be used by extension writers. Structure member names do
  1143. not have a reserved prefix.
  1144. Important: user code should never define names that begin with "Py" or "_Py".
  1145. This confuses the reader, and jeopardizes the portability of the user
  1146. code to future Python versions, which may define additional names beginning
  1147. with one of these prefixes."
  1148. Here is a brief list of what changed:
  1149. PySwig* -> SwigPy*
  1150. PyObject_ptr -> SwigPtr_PyObject
  1151. PyObject_var -> SwigVar_PyObject
  1152. PySequence_Base, PySequence_Cont, PySequence_Ref ->
  1153. SwigPySequence_Base, SwigPySequence_Cont, SwigPySequence_Ref
  1154. PyMap* -> SwigPyMap*
  1155. We provided a pyname_compat.i for backward compatibility. Users whose code having
  1156. these symbols and do not want to change it could simply include this file
  1157. at front of your code. A better solution is to run the converting tool on
  1158. your code, which has been put in SWIG's SVN trunk (Tools/pyname_patch.py) and
  1159. you can download it here:
  1160. https://swig.svn.sourceforge.net/svnroot/swig/trunk/Tools/pyname_patch.py
  1161. *** POTENTIAL INCOMPATIBILITY ***
  1162. 2008-12-02: wsfulton
  1163. [Python] Apply patch #2143727 from Serge Monkewitz to fix importing base classes
  1164. when the package option is specified in %module and that module is %import'ed.
  1165. 2008-11-28: wsfulton
  1166. [UTL] Fix #2080497. Some incorrect acceptance of types in the STL, eg a double * element
  1167. passed into a vector<int *> constructor would be accepted, but the ensuing behaviour
  1168. was undefined. Now the type conversion correctly raises an exception.
  1169. 2008-11-24: wsfulton
  1170. Add -outcurrentdir option. This sets the default output directory to the current
  1171. directory instead of the path specified by the input file. This option enables
  1172. behaviour similar to c/c++ compilers. Note that this controls the output directory,
  1173. but only in the absence of the -o and/or -outdir options.
  1174. 2008-11-23: wsfulton
  1175. [ruby] Apply patch #2263850 to fix ruby/file.i ... rubyio.h filename change in
  1176. ruby 1.9.
  1177. 2008-11-23: wsfulton
  1178. Apply patch #2319790 from Johan Hake to fix shared_ptr usage in std::tr1 namespace.
  1179. 2008-11-21: wsfulton
  1180. The use of the include path to find the input file is now deprecated.
  1181. This makes the behaviour of SWIG the same as C/C++ compilers in preparation
  1182. for use with ccache.
  1183. 2008-11-16: wsfulton
  1184. Fix -nopreprocess option to:
  1185. - correctly report file names in warning and error messages.
  1186. - use the original input filename that created the