Recent updates:

Version 1.3.5 (Jul 17, 2026):
Single-source the version: mwrap --help and the "Code generated by mwrap"
  stamp in generated files now show the full patch version, taken from
  src/mwrap-version.h and python/mwrap_version.py
Fix allocator mismatch in -i8 integer promotion (strdup freed by delete[])
  and add -i8 coverage to the Python/C++ parity suite
Remove the no-op MWRAP_ENABLE_C99_COMPLEX/MWRAP_ENABLE_CPP_COMPLEX CMake
  options; complex support is selected with -c99complex/-cppcomplex flags
Fix missing newline in the generated 1-D array size check
Use snprintf instead of sprintf in the generator (silences deprecation
  warnings on modern toolchains; snprintf is within the existing
  C99/C++11 requirement)
Make doc/test/demo phony targets in the root Makefile, have make test
  build mwrap first, and gate the test_syntax reference comparison
Fix crash when an @include appears in the second or later input file
Fix stack buffer overflow on type or class names longer than 127 characters
Reject gpu qualifier on non-array arguments that crashed the generator
  or produced non-compiling code; object/string inputs are still
  accepted with a warning, and the qualifier is cleared so the
  generated code is genuinely unaffected (interfaces using gpu on
  object/string inputs must regenerate the .m and .c outputs together,
  since the dispatch signature for those arguments changed)
Exit with status 1 when flags are given but no input files
Exit with an error when an input file cannot be read or an output file
  cannot be written, instead of silently succeeding
Exit with an error and suppress C output when an input file contains
  syntax errors, instead of exiting 0 after Bison error recovery
Reject inout array references ([]&), which generated non-compiling code
Unpack argument dimensions even when the return array also carries
  dimensions; the generated size check read an uninitialized dimension
Python port: match the flex lexer on invalid characters, @include line
  numbers and filename parsing, indented $] terminators, one-line $[,
  and block-C state across includes; require Python 3.7+
Fix duplicate-call bookkeeping: the first parsed call line no longer emits
  a redundant second stub when repeated, and "Also at" comments and the
  profiler report now list every duplicate occurrence, not just the first
Fix unbraced loop body in the interleaved-complex mxWrapCopyDef, which
  wrote one element past the end of the array and left imaginary parts
  unset (backported from the v1.4 development branch)
Fix crash when a real (non-complex) scalar is passed to a complex argument
  with the Matlab R2018a interleaved complex API
Reject empty arrays passed to complex scalar arguments instead of crashing
Reject complex arrays passed to real double/float array input arguments
  with the Matlab R2018a interleaved complex API instead of crashing
  (pre-2018a builds continue to use the real part silently, as before)
Fix generated '*profile report*' and '*profile log*' commands crashing
  Matlab/Octave when called before '*profile on*'
Exit with status 1 on any error instead of the raw error count, which
  wrapped to a success status at exact multiples of 256

Version 1.3 (Feb 23, 2026):
Added CMake build system and GitHub Actions CI
Validate input files before processing to prevent data loss
Added #include <stdint.h> for int64_t/uint64_t on Windows msys2/mingw64
Added Python mwrap implementation

Version 1.2 (Apr 10, 2025):
Cope with error verbose directive in both versions 2 and 3 of Bison
Added support for gpuArray
Added support for char scalar

Version 1.1 (Jun 7, 2022):
Added support for gfortran -fno-underscoring flag

Version 1.0 (Aug 4, 2020):
Added support for 64-bit Matlab and gcc-4.6
Added support for gcc 7.3+
Added support for Matlab R2018a complex interleaved API
Added support for C99 int32_t, int64_t, uint32_t, uint64_t
Allow single precision Matlab inputs and outputs

Version 0.32 (Nov 5, 2008):
Added support for new single-class style MATLAB objects; an example
is in the manual, as well as in examples/eventq.

Version 0.31 (Jun 19, 2008):
Added line to license to clarify that code generated by MWrap may be
redistributed under terms of the user's choice.

Version 0.30 (Apr 29, 2008):
Added more complete support for auto-converted objects, allowing them to
be used as inout or output parameters and updating the documentation
accordingly.  Corrected bug in C call line checking feature (added in 0.28);
corrected missing virtual destructor for Quad2d in FEM example.

Version 0.29 (Apr 27, 2008):
Reworked internal error handling logic.  Added typedef mxArray support
to allow automatic conversion of mxArrays to temporary objects on input.

Version 0.28 (Mar 4, 2008):
Added a check against ending a block of C call lines without finishing
a statement (e.g. missing a semicolon on an isolated call line).
Added support for C++ end-of-line comments inside C call lines.
Added partial recovery on syntax errors.

Version 0.27 (Feb 19, 2008):
Added const arguments.

Version 0.26 (Feb 18, 2008):
Updated demos.

Version 0.25 (Feb 8, 2008):
Corrected code to add bounds checks on complex arrays.
Added nonzero return codes on error.

Version 0.24 (Feb 7, 2008):
Added comment lines.

Version 0.23 (Feb 6, 2008):
Added logging support for profiling / coverage testing.

Version 0.22 (Jan 29, 2008):
Added @include support.

Version 0.21 (Jan 7, 2008):
Added support for string literal arguments.
Added support for @function redirections.
Corrected line number counting in presence of $[ $] code blocks.

Version 0.20 (Sep 20, 2007):
Added $[ $] delimiters for C code blocks.

Version 0.19 (Sep 4, 2007):
Added array references.

Version 0.18 (August 15, 2007):
Added interpretation of empty input array arguments as NULL.

Version 0.17 (July 31, 2007):
Added scoped names for access to static methods, namespaces.

Version 0.16 (July 9, 2007):
Added flags to set default complex support to C++ or C99 complex types

Version 0.15 (July 5, 2007):
Corrected complex support (needs setz macro)

Version 0.14 (July 3, 2007): 
Added complex support

Version 0.13 (June 30, 2007):  
Added FORTRAN bindings
