All Versions
25
Latest Version
Avg Release Cycle
63 days
Latest Release
819 days ago

Changelog History
Page 3

  • 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.

  • v0.8.16 Changes

    November 10, 2017
    • ๐Ÿ›  Fixed a crash when parsing unnamed declarations in name-spaces.
  • v0.8.15 Changes

    • ๐Ÿ– Handled any level of nesting when generating internals for specialisations in C#.

    • ๐Ÿ›  Fixed the generation of internals for template specialisations.

    • Ensured symbols for nested template specialisations.

    • ๐Ÿ›  Fixed the generated C++ for external template specialisations.

    • Completed just class template specialisations used in functions.

    • ๐Ÿ›  Fixed a regression of generating templates in C# with the option off.

    • ๐ŸŒ Optimised the parser by skipping the system translation units.

    • Reused parameters between functions and their types (as Clang does).

    • โž• Added an option for specifying STD types to bind.

    • โฌ‡๏ธ Reduced time and memory during generation by skipping methods of most STD classes.

    • ๐Ÿ‘Œ Improved the check for a layout on a record.

    • ๐Ÿ›  Fixed a crash when trying to get a source location for an implicit declaration.

    • ๐Ÿ›  Fixed the generated C# for a fixed array of pointers.

    • โœ‚ Removed unused STD enumerations from generation.

    • ๐Ÿ›  Fixed a crash when a comment contains regular text wrapped in <>.

    • Made only really used classes internal.

    • ๐Ÿ›  Fixed a typing error in the name of a function.

    • 0๏ธโƒฃ Ignored return parameters when fixing default arguments of overrides.

    • Ensured no overflown stack in the AST converter.

    • ๐Ÿ›  Fixed code generation for using template types.

    • ๐Ÿ‘Œ Improved debugging display for Type type.

    • ๐Ÿ›  Fixed incorrectly generated bindings for class with non-type template arguments.

    • ๐Ÿ›  Fixed the generated C# for templates derived from regular dynamic classes.

    • Ensured all non-system template specialisations are complete.

    • ๐Ÿ›  Fixed a problem when walking the managed AST because friend templated classes were seen as declared multiple times and resulted into a crash.

    • ๐Ÿ‘Œ Improved type notation in the manual.

    • Documented string marshaling behavior.

    • ๐Ÿ›  Fixed implicit class record walking in the parser.

    • โž• Added a new verbose flag to the CLI tool and improved verbose handling.

    • ๐Ÿ›  Fixed duplicate generation of forward declared class.

    • Small cleanup and minor optimizations in ResolveIncompleteDeclsPass.

    • ๐Ÿ‘Œ Improved the fix for handling non-type params in template specialisation types.

    • ๐Ÿ›  Fixed template parsing issue with processing of type locs.

    • ๐Ÿ›  Fixed a parser bug when dealing with DependentTemplateSpecializationTypeLoc.

    • ๐Ÿ›  Fixed an erroneous usage of LLVM cast with a regular C++ type. Only found with debug-mode LLVM build.

    • ๐Ÿ›  Fixed VS2017 system includes search error #957 (#958)

  • v0.8.14 Changes

    • โž• Added experimental support for templates.

    • ๐Ÿ›  Fixed the generated C# when a virtual function takes a fixed array.

    • ๐Ÿ›  Fixed the generated C# for fixed arrays in types of parameters.

    • ๐Ÿ›  Fixed the generated C# for virtuals taking arrays of objects.

    • ๐Ÿ Lookup Mono SDK path on Windows registry.

    • ๐Ÿ›  Fixed the generated C# when a virtual function takes an array.

    • ๐Ÿ›  Fixed the generated C# with 4+ modules and repetitive delegates.

    • โž• Added C# marshalling of parameters of type array of const char* const.

    • โž• Added C# marshalling of parameters of type array of const char*.

    • ๐Ÿ›  Fixed null arrays in C# to be passed as such to C/C++.

    • โž• Added C# marshalling of parameters of type array of objects.

    • โž• Added C# marshalling of parameters of type array of primitives.

    • โž• Added marshalling of parameters of type array of pointers.

    • ๐Ÿ›  Fixed the generated C# for two anonymous types nested in another anonymous type.

    • โœ‚ Removed unused internals from the generated C#.

    • โž• Added an example for the parser API-s.

    • โž• Add C++17 to the parser options

    • Compile.sh script now has improved error handling.

    • ๐Ÿง Linux toolchain can be supplied in the same spirit in path probing on Mac.

    • Enabled empty arrays of non-primitives only when not using MSVC.

    • Ignore zero-sized constant C array types.

    • 0๏ธโƒฃ The compilation platform is now nullable by default and validated by the host platforms.

    • โž• Added LLVM target initialization and supporting libraries for parsing inline assembly.

    • ๐Ÿ›  Fixed a crash when trying to use a VS version missing from the system.

    • ๐Ÿ›  Fixed the binding of multiple identical function pointers with a calling convention.

    • Got rid of anonymous names for delegates.

    • ๐Ÿ›  Fixed the calling conventions of delegates.

    • Ensures that if a delegate is used for a virtual as well as something else, it finally ends up as public.

    • ๐Ÿ›  Fixed the code generation when the return type of a method is a function pointer that has been used somewhere else as well.

    • โž• Added Access and Calling convention to the delegate definition.

    • Generated properties from setters returning Booleans.

    • โž• Added some aliases to options in the CLI tool.

    • [generator] Improved processing for C++ inline namespaces.

    • ๐Ÿ›  Fixed initial output messages in the CLI.

    • Generated properties from get()/void get() pairs.

    • โช Restored the option for generating one C# file per unit.

    • ๐Ÿ›  Fixed the sorting of modules to also work with manually added dependencies.

    • Do not generated unformatted code if debug mode is enabled.

    • โž• Added an option to the CLI for enabling debug mode for generated output.

    • ๐Ÿ‘Œ Improved the directory setup in the CLI in case the path is not a file path.

    • โž• Adds a new option to the CLI for automatic compilation of generated code.

    • โž• Adds a new dedicated "-exceptions" flag to enable C++ exceptions in the CLI.

    • โž• Added a new -A option to the CLI to pass compiler arguments to Clang parser.

    • ๐Ÿ›  Fixed the name of an option in the CLI.

    • โœ‚ Removed the showing of help for the CLI if we have output an error previously.

    • ๐Ÿ‘Œ Improved error messages in the CLI.

    • ๐Ÿ‘Œ Improve platform detection in the CLI so the current platform is set by default.

    • ๐Ÿ›  Fixed a directory check in the CLI that was throwing exceptions in Mono.

    • ๐Ÿ›  Fixed the generated C# indexers for specialisations of pointers.

    • ๐Ÿ›  Fixed the generated C# for increment and decrement operators.

    • โœ‚ Removed leftovers in the comments from unsupported custom xml tags.

    • ๐Ÿ›  Fixed the generation of symbols to check all base classes up the chain.

    • ๐Ÿ–จ Printed the text from unsupported comment tags.

    • ๐Ÿ›  Fixed the generated C# for a case of a typedef of a function pointer.

      Typedefs of function pointers can be written in two ways:

      typedef void (*typedefedFuncPtr)();

      int f(typedefedFuncPtr fptr);

      typedef void (typedefedFuncPtr)();

      int f(typedefedFuncPtr* fptr);

      Up until now we only supported the former.

    • ๐Ÿ›  Fixed the C# generation for functions with typedefed function pointers as params

    • Set the name-space of a parameter to its function.

    • Included the comments plain text to the remarks block.

    • ๐Ÿ›  Fix the typo in LLVM.lua

    • Prevented projects from being generated using GenerateProjects.bat

    • ๐Ÿ›  Fixed the generated C# for setters with a reference to a primitive type.

    • ๐Ÿ“š Ensured a single element for remarks in the generated XML documentation comments.

    • ๐Ÿ›  Fixed the renaming of methods in forwarded types from secondary bases in dependencies.

    • โž• Added to a method a list of its overridden methods.

    • Generated internals of external specialisations only if the template has template fields.

    • Equalised the access of overrides and their base methods.

    • ๐Ÿ›  Fixed the code generation for indexers returning a void pointer.

    • ๐Ÿ›  Fixed the generated C# when a protected constructor has a parameter with a protected type.

    • ๐Ÿ›  Fixed the generated C# when an external specialisation with a dependent field is used as a field.

    • Made Function a DeclarationContext to match the Clang AST.

    • Made the C/C++ language switches adjustable in managed code.

    • โž• Added an option to enable or disable RTTI.

    • ๐Ÿ›  Fixed the generation of inlines to handle types in classes in name-spaces.