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

/tags/rel-2.0.2/CHANGES

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

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