CppSharp v0.8.17 Release Notes

Release Date: 2017-12-25 // over 6 years ago
    • Collected extra symbols in the order of their compilation.

    • ๐Ÿ›  Fixed the generated C# when a specialisation of a template used as a secondary base has an invalid function.

    • ๐Ÿ›  Fixed the generated C# when a template interface specialised with another specialisation returns a template parameter.

    • ๐Ÿ›  Fixed the generated C# when a default arg is assigned a specialisation also used as a secondary base.

    • ๐Ÿ›  Fixed a crash when a constructor takes a template or specialisation.

    • ๐Ÿ›  Fixed the generated C# for public fields with type a dependent pointer.

    • Enabled classes having specializations for secondary bases to call their extensions.

    • ๐Ÿ›  Fixed the generated C# for subclasses of specialisations used as secondary bases.

    • ๐Ÿ›  Fixed the generated C# when a template specialization with extensions is used for a secondary base.

    • Extended the multiple inheritance to work for templates.

    • ๐Ÿ›  Fixed a regression causing public fields of type specialization to be ignored.

    • ๐Ÿ›  Fixed the generated C# for templates with optional arguments.

    • Represented "void" with "object" for template arguments in the generated C#.

    • ๐Ÿ›  Fixed the generated C# for public fields with type a dependent function pointer.

    • ๐Ÿ›  Fixed the generated C# when a constructor has a default parameter with type an external specialisation.

    • Set an index when marshalling the value in setters of properties.

    • ๐Ÿ›  Fixed the generated C# when a function uses an external specialisation.

    • ๐Ÿ›  Fixed the generated C# when a base class is an external specialisation.

    • ๐Ÿ›  Fixed the generated C# for indexers with dependent keys.

    • ๐Ÿ›  Fixed the generated C# for templated indexers specialised with enums.

    • โž• Add compiler/abi information to LLVM package names on linux.

    • Exported entire specialisations when they only have valid functions.

    • Considered dependent fields when generating internals for types nested in templates.

    • โœ‚ Removed extensions for non-generated template specialisations.

    • ๐Ÿ›  Fixed the generated C# when a template returns a specialisation with itself as a type arg.

    • ๐Ÿ›  Fixed the generated C# for members of types nested in templates.

    • ๐Ÿ›  Fixed the generated C# when a template is nested in another.

    • โž• Add ability for managed module wrapper to reference extra assemblies.

    • ๐Ÿง Re-added linux include path that was removed by mistake.

    • โœ… Enable debug information generation for all tests.

    • ๐Ÿ›  Fix debug output not being generated when AST element had no comment.

    • ๐Ÿง Explicitly link to libstdc++ on linux.

    • ๐Ÿ— All arguments passed to build/Compile.sh are passed to premake. Allows more fine-grained build customization when using this shell script for compiling.

    • ๐Ÿง Tweak linux include dirs, previous change broke GCC7 include dirs on archlinux.

    • ๐ŸŒ Consistent class/struct keywords fixed for cases where wrapper class would contain members from several different translation units.

    • ๐Ÿ›  Fix debug output breaking generated binding code.

    • ๐Ÿšš Completely remove GenerateUnformatted() method.

    • ๐Ÿ— CI: x64 builds on msvc and sudo requirement for travis

    • Always generate formatted code.

    • ๐Ÿ›  Fix Delegates name-space being not generated. In some cases Delegates name-space could be attached to a name-space which is not wrapped and as a result of that Delegates name-space was also not generated in wrapper code resulting in a wrapper build errors. Change adds extra logic which tries to find the correct library name-space if more than one name-space is present.

    • ๐Ÿ›  Consistently declare classes/structs. Fixes issue where compilation error is produced due to file name containing constants matching class marked as value type.

    • ๐Ÿ›  Fix linking to LLVM libs on linux, when system has llvm/clang installed.

    • ๐Ÿง Enable cxx11 abi for GCC 4.9+ on linux.

    • Worked around a bug in the Mono C# compiler when casting generics.

    • ๐Ÿ›  Fixed a crash when the body of a templated function contains references to non-functions.

    • ๐Ÿ— Use correct LLVM build dir for includes from unpackaged LLVM builds

    • get_llvm_build_dir() returns "build" subdir if it exists, if not - subdir with package name.

    • ๐Ÿ›  Fix linked libs for linux

    • ๐Ÿ— Use correct LLVM build dir for includes from unpackaged LLVM builds.

    • โœ‚ Removed a duplicate explicit instantiation from the tests.

    • Cloning llvm from git replaced with downloading archives of exact commits from github. This is much faster.

    • Worked around duplication of types nested in templates and forwarded.

    • ๐Ÿ›  Fixed a crash when passing null as an std::string on Unix.

    • ๐Ÿ‘ฎ Force-set platform type to managed targets.

    • ๐Ÿ›  Fix linux include paths in ParserGen and CLI generator.

    • ๐Ÿ›  Fix build errors in CppSharp.Parser.Bootstrap target.

    • ๐Ÿ›  Fixed a crash when there are parsing errors.

    • ๐Ÿ›  Fixed the collection of additional symbols to ignore warnings.

    • ๐Ÿ›  Fixed the generated C# when a constructor takes a specialisation.

    • ๐Ÿ›  Fixed a possible crash when instantiating template functions in the parser.

    • ๐Ÿ›  Fixed the generated C# for templates with fields other templates not used anywhere else.

    • ๐Ÿ›  Fixed the generated C# when using std::map.

    • ๐Ÿ›  Fixed the generated C# for specialisations with an ignored specialisation as an arg.

    • ๐Ÿ›  Fixed the generated C# for specialisations only used as type arguments.

    • โœ‚ Removed extensions for internal template specialisations.

    • ๐Ÿ›  Fixed the parsing of an undeclared template specialisation with an extension method.

    • Validated bodies of instantiated template functions.

    • โž• Added a new field accessor synth kind.

    • ๐Ÿ‘Œ Improved IsSynthetized check to handle property setters.

    • ๐Ÿ‘Œ Improve get base method and property methods to work with generalized declarations.

    • โž• Added AssociatedDeclaration to Declaration copy constructor.

    • Included template specialisations only used as returned types.

    • Included the destructor of std::allocator to the C++ symbols.

    • Prevented C++ generation for invalid specialised functions.

    • ๐Ÿ›  Fixed the generated C# for fixed arrays of Booleans

    • โšก๏ธ Updated to LLVM/Clang revisions 318543/318538 respectively.

    • ๐Ÿ›  Fixed the script for LLVM to handle paths with spaces.

    • Generalized method fields to declaration associations.

    • ๐Ÿ‘Œ Improved debugging display for declarations.

    • โž• Added optional visiting of property accessors.

    • CodeGenerator is now an IAstVisitor.

    • ๐Ÿ“œ Cleaned up the additional parser options after parsing headers.

    • ๐Ÿ›  Fixed the generated C++ for symbols to be compatible with Clang.

    • ๐Ÿ›  Fixed the generated C# when a type nested in a template is forwarded.