All Versions
23
Latest Version
Avg Release Cycle
62 days
Latest Release
-

Changelog History
Page 2

  • v0.9.2 Changes

    May 07, 2019
    • ๐Ÿ›  Fix the Windows build by not storing Unicode in std::string

    • ๐Ÿ›  Fixed type map support for typedef types

    • Name anonymous types after the fields which use them

    • Generate valid C# when std::string is only used for variables

    • Generate valid C# when std::string is only used for non-private fields

    • ๐Ÿ‘Œ Support indirect parameters

    • โž• Add a test for passing by value of structs with copy ctors

    • โž• Add parsing and AST support for RecordArgABI information in class records.

    • ๐Ÿ›  Fix the generated C++ for Xcode 10.2

    • โšก๏ธ Optimize renaming of declarations named after keywords

    • โšก๏ธ Optimize the cleaning of invalid names

    • ๐Ÿ›  Fix a crash when a function pointer takes a function pointer

    • Generate valid C# for returned const char*&

    • Generate valid C# for overloads with types nested in templates

    • ๐Ÿ›  Fix the naming of anonymous types when 2+ types are nested 2+ levels

    • โœ‚ Remove ParserOptions.Abi since its misleading as it serves no purpose

    • ๐Ÿ‘Œ Improved robustness when parsing C++ ABI kind

  • v0.9.1 Changes

    April 13, 2019
    • Generate valid C# for template indexers taking const char*

    • โช Restore removed specializations

    • โž• Add a generic pointer to resolve ambiguity

    • ๐Ÿ›  Fix a crash when a function pointer is a template arg

    • ๐Ÿ”ฆ Expose public anonymous types

    • ๐Ÿ›  Fix the generated C# for fields of type function pointer

    • ๐Ÿ›  Fix the generated C# for const char*&

    • ๐Ÿ›  Fix the pass for duplicate names not to compare return parameters

    • ๐Ÿ›  Fix the generated C# when type arguments are mapped the same

    • ๐Ÿ›  Fix typo in options: chsarp -> csharp

    • ๐Ÿ›  Fix #1191 CppSharp.CLI.exe --rtti sets -fno-rtti to clang

    • ๐Ÿ›  Fix the generated C# for a case with 2 template args

    • ๐Ÿ›  Fix the generation of properties for locations in expressions

    • โž• Added statement visiting to IAstVisitor

    • ๐Ÿ›  Fix the generated C# when a dependent param has a default value

    • ๐Ÿ›  Fix ambiguous code when a nested type and a property-like method with overloads have the same name

  • v0.9.0 Changes

    March 01, 2019
    • Extended the AST with C++ statements and expressions.

    • Made public the finding of enabled type maps by strings.

    • ๐Ÿ›  Fixed the renaming of properties with the same name as their owners.

    • Simplified the pass for properties.

    • Skip ignored bases in ClassExtensions.GetBaseProperty.

    • ๐Ÿ›  Fixed missing options copy in ParserOptions copy constructor.

    • ๐Ÿ Use MSBuild when building LLVM on Windows due to PDB issues with Ninja.

    • ๐Ÿ‘Œ Improve robustness when parsing types and decls.

    • ๐Ÿ›  Fixed indentation regressions.

    • โœ‚ Deleted useless output.

    • ๐Ÿ›  Fixed naming edge case in GenerateProperties.GetReadWritePropertyName.

    • โž• Added PrintModuleOutputNamespace option to CSharpTypePrinter.

    • ๐Ÿ›  Fixed extraneous new lines when generating multi-line comments.

    • Obsoleted all hand-written types for expressions.

    • ๐Ÿ“œ Use takeError() when handling errors in parsing libraries.

    • ๐Ÿ›  Fixed a crash with TranslationUnit.FileName property.

    • โž• Added ForceClangToolchainLookup option to force to use Clang's toolchain lookup code.

    • ๐Ÿ“œ Extract ParserOptions cloning code into a copy constructor.

    • ๐Ÿ‘Œ Improve ParserOptions.Verbose to print compiler arguments.

    • ๐Ÿ›  Fixed Options.DryRun to not generate any binding code.

    • โž• Added some helper methods in Enumeration to work with scoped enumerations.

    • โž• Added a parsing option to skip gathering of native layout info.

    • ๐Ÿ›  Fixed the generated C# when an instance method has a parameter named "instance".

    • ๐Ÿ›  Fixed the generated C# for const/non-const overloads with > 1 param.

    • ๐Ÿ›  Fixed the generated C# when a ref parameter is named after a keyword.

    • ๐Ÿ›  Fixed the generation for parameters of type void**.

    • ๐Ÿ›  Fixed the generated C# for indexers in templates specialized with void*.

    • ๐Ÿ›  Fixed the generated C# for template specializations of pointers.

    • ๐Ÿ›  Fixed the generated C# for const void*& in parameters.

    • ๐Ÿ›  Fixed the generated C# when returning a non-const char*.

    • ๐Ÿ›  Fixed the generated C# for parameters initialized with {}.

    • ๐Ÿ›  Fixed the generated C# when a template is specialized with T and const T.

    • ๐Ÿ›  Fixed the generated C# when an unsigned enum is assigned a negative value.

  • v0.8.23 Changes

    January 31, 2019
    • Keep Clang libTooling libs when packaging LLVM.

    • ๐Ÿ‘Œ Improve error handling in build scripts UseClang().

    • โž• Added .NET Core build folder to Git Ignore .

    • ๐ŸŽ‰ Initial integration of Clang AST viewer GUI tool.

    • ๐Ÿšš Made an exception serializable and removed another.

    • ๐Ÿ›  Fixed the warnings in the test C++ for C# only.

    • ๐Ÿ›  Fixed a crash when parsing libraries on macOS.

    • ๐Ÿ›  Fixed error handling when parsing non-existent libraries.

    • โž• Added support for building with Clang and LLD.

    • Switched to use csc.exe Roslyn compiler under Mono

    • ๐Ÿ‘ Disable most of the support for explicit pre-C++11 ABI since we do not need it anymore

    • ๐Ÿ›  Fixed warnings in native test code.

    • ๐Ÿ›  Fixed the generation of dependent virtual methods.

    • ๐Ÿ›  Fixed overloading of operators with parameters mapped to the same type.

    • Extended the type maps for primitive strings to C++/CLI.

    • ๐Ÿ– Handled int and long in maps to help resolve ambiguity.

    • Simplified type maps by unlinking them from declarations.

    • โšก๏ธ Properly hashed types to optimize their storage in maps.

    • ๐Ÿ›  Fixed right-value references creating ambiguous overloads.

    • ๐Ÿ›  Fixed the generated code in a case of ambiguous overloads.

    • โž• Added type maps for primitive strings (pointers to char).

    • โž• Added an option for skipping private declarations.

    • โœ… Tested indirect calls from native code of overrides in the target language.

    • ๐ŸŽ‰ Initial support for building under .NET Core.

    • โšก๏ธ Updated the CI on Linux to use GCC 7.

    • ๐ŸŽ Exported all additional symbols on macOS.

    • ๐Ÿ›  Fixed error handling and message when parsing non-existent files.

    • โž• Added a test for passing an std::string by value.

    • ๐Ÿ›  Fixed the marshalling of std::string with GCC 6+ on Linux.

    • โž• Added a type map for char.

    • ๐Ÿ Make Windows10SDK detection more robust

    • Cached found type maps for faster look-ups.

    • โœ‚ Deleted unused and slow code.

    • ๐Ÿ›  Fixed the parsing of functions with integral template args.

    • โฌ‡ Decreased the build time on the Linux CI.

    • ๐Ÿ›  Fixed a crash when parsing type aliases.

    • ๐Ÿ›  Fixed the build of the parser when its path has spaces.

    • ๐Ÿ”„ Changed type maps to only return types - no strings.

    • Simplified type maps by using static objects to disable as needed.

    • โšก๏ธ Optimized the walking of the managed AST.

    • โšก๏ธ Optimized the generation of C# by not splitting any strings.

    • โšก๏ธ Optimized the walking of the AST by simplifying its search.

    • ๐Ÿ›  Fixed the late parsing of templates.

    • ๐Ÿ›  Fixed LLVM/Clang tar.gz archive extraction using 7-Zip on Windows.

    • ๐Ÿ›  Fixed Windows SDK version detection in build scripts.

    • Resolved ambiguity between char-like types in the generated C#.

    • ๐Ÿ›  Fixed the generated C# for templates with > 1 ctor taking a pointer to a class.

    • ๐Ÿ›  Fixed the generated C# for pure virtual functions with default arguments.

    • ๐Ÿ›  Fixed the generated C# for default arguments of type pointer to a function.

    • ๐Ÿ›  Fixed the generated C# for a certain case of two default parameters.

    • ๐Ÿ›  Fixed the generated C# for arguments with default values of "nullptr".

    • ๐Ÿ›  Fixed the generated C# for setters with default parameters.

    • ๐Ÿ›  Fixed the generated C# for public fields with types mapped to primitive.

    • ๐Ÿ›  Fixed the generated C# for constant references to primitives.

    • โฌ†๏ธ Upgraded the CI script to use Ubuntu 16.04.

    • ๐Ÿ›  Fixed ambiguity when the type of a parameter is mapped to a type in an overload.

  • v0.8.22 Changes

    September 14, 2018
    • ๐Ÿ›  Fixed renaming when items of an enum only differ by case.

    • ๐Ÿ›  Fixed the generated C# for destructors of abstract classes.

    • ๐Ÿ—„ Stopped using methods deprecated in recent Clang.

    • ๐Ÿ— Excluded many unused modules when building LLVM and Clang.

    • ๐ŸŽ Worked around a missing symbol from a template specialization on macOS.

    • โšก๏ธ Updated to LLVM/Clang revisions 339502/339494 respectively.

    • ๐Ÿ›  Fixed the generation when a secondary base is used in more than one unit.

    • ๐Ÿ›  Fixed debugger display variable reference in Block class.

  • v0.8.21 Changes

    August 01, 2018
    • Only generated the system module in C# generators.

    • ๐Ÿ›  Fixed missing save of generated module template to outputs.

    • ๐Ÿ›  Fixed code generator to generate the system module even in single file per unit mode.

    • โš  Silenced verbose duplicate constructor and operator warnings.

    • ๐Ÿ‘Œ Improved the defaults of necessary generation options to improve accessibility.

    • ๐Ÿ“œ Called the parser setup code in CLI.

    • Only included header files when scanning directories in CLI.

  • v0.8.20 Changes

    May 25, 2018
    • ๐Ÿ›  Fixed generation support for pointers to enums in C#.

    • ๐Ÿ›  Fixed a case of functions converted to methods.

    • ๐Ÿ‘Œ Improve error handling in case of exceptions in CLI tool driver.

    • โž• Added an option to the CLI tool for enabling RTTI.

    • ๐Ÿ‘Œ Improved the messages for errors in the CLI tool.

    • โž• Added parameter index to managed marshal variables.

    • ๐Ÿ”„ Changed the generated C# for const references to primitives as just primitives.

    • Error messages are now written to stderr.

  • v0.8.19 Changes

    • โž• Added getting of the path to Xcode based on xcode-select.
  • v0.8.18 Changes

    • Do not generate wrappers for template specializations if original method in template class is ignored.

    • โž• Add one more include path which Linux usually expects.

    • Evaluate expressions for enums generated using GenerateEnumFromMacros

    • Evaluate expressions when generating enum from macros - ExpressionEvaluator taken from https://github.com/codingseb/ExpressionEvaluator

    • Set the name-space for enums generated from macros.

    • ๐Ÿ— Preliminary script for building 32-bit Nuget package

    • Field property getter returns non-value types by reference instead of by copy.

    • โšก๏ธ Update VS check when downloading pre-compiled LLVM packages.

    • โž• Add IgnoreConversionToProperty(pattern) and ForceConversionToProperty(pattern).

    • โž• Add UsePropertyDetectionHeuristics option to DriverOptions.

    • โž• Add "run" to verbs.txt

    • โž• Added support for 16-bit wide characters (char16_t).

    • ๐Ÿ›  Fixed the generated C++ for symbols when protected classes need them.

    • โœ‚ Removed the possibility for conflicts between overloads when generating C++ for symbols.

  • v0.8.17 Changes

    December 25, 2017
    • 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.