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

Changelog History
Page 1

  • v0.11.1 Changes

    • โช Restore backwards compatibility with .NET Framework

    • โœ‚ Remove looking MSVC headers up with COM

    • Look for the Clang headers along the main entry (#1573)

  • v0.11.0 Changes

    • ๐ŸŽ The NuGet package now supports Linux and macOS as well

    • โฌ†๏ธ Upgrade to .NET Core 3.1 and improve build system

    • ๐Ÿ‘‰ Make auto-compiling of C# work with .NET Core

    • โž• Adding extract interface pass

    • โž• Add a log for changes per release

    • ๐Ÿ›  Fixed alias of signed char cannot be marshaled

    • โž• Add missing quotes to support paths with spaces in build scripts

    • ๐Ÿ‘ Ignore the still unsupported dependent type names

    • Rewrite GenerateEnumFromMacros helper to also look into enum items.

    • ๐Ÿ›  Fix generation of overloads in NAPI by re-ordering final calculated states.

    • โšก๏ธ Update expression evaluator code from latest upstream.

    • ๐Ÿ‘Œ Improve visiting options implementation in CodeGenerator.

    • Clean multiline function signatures in the AST converter.

    • ๐Ÿ›  Fix generation of text blocks using NewLineKind.IfNotEmpty.

    • Git ignore IDEA project folders.

    • ๐Ÿ”„ Change XML comments to be tested at run-time

    • Generate valid C++ for pointers in template args

    • ๐Ÿ‘ Better detect invalid specialized functions

    • Simplify the marking of invalid functions

    • Generate valid C++ for protected constructors

    • Generate valid C++ for protected destructors

    • Only implement abstract classes in C++ for ctors/dtors

    • ๐Ÿ›  Fix test generation for QuickJS generator.

    • โœ‚ Remove unused code in QuickJS module generator.

    • โž• Add enum support to QuickJS generator.

    • Marshaling correctness fix for enum and primitive types in NAPI.

    • Abstract marshaler into overridable method in NAPI sources.

    • Extract NAPI VarPrefix and ArgumentPrefix to base class.

    • โž• Add missing clang headers

    • ๐ŸŽ Create a single nuget package that supports windows / linux / macos

    • โ™ป๏ธ Refactor QuickJS generator structure to follow NAPI patterns.

    • โž• Add initial QuickJS primitive type support and test suite.

    • โœ… Ensure a tested specialization is really generated

    • โœ… Place all output of tests in their own directories

    • ๐Ÿ‘‰ Use C++17 in all native projects

    • 0๏ธโƒฃ Disable getter/setter to property pass by default in non-managed backends.

    • ๐Ÿ›  Fix forward include collector to consider value class semantics in function returns.

    • Factor VarPrefix and ArgumentPrefix helpers into base marshaler.

    • Implement basic visiting behavior in some CodeGenerator overloads.

    • Normalize visiting overloads to be virtual.

    • Flush Module.ExternalClassTemplateSpecializations to avoid emitting the same specialization in multiple files

    • โž• Add initial Node and N-API testing infrastructure and tests.

    • โšก๏ธ Big update to NAPI generator with initial support for basic examples.

    • โž• Add DFA/NFA state machine utility code.

    • Replace outdated Clang compiler flags such as std=c++1z and replace it with std=c++17

    • ๐Ÿ”„ Change GenerateSequentialLayout default value to true

    • Simplify TU.FileRelativeDirectory by using Path.GetDirectoryName.

    • โšก๏ธ Update driver to only generate system modules for C# generators.

    • โž• Add ILibrary.GenerateCode as a custom code generation callback.

    • โฌ†๏ธ Upgrade .NET projects to C# 8.0.

    • ๐Ÿ‘Œ Improve generation of type printing declaration names for C language.

    • Rework constructor generation in C++ code generator.

    • ๐Ÿ“œ Setup include dirs on the module instead of parser options in the CLI.

    • ๐Ÿ‘Œ Improve error handling in CLI and avoid defaulting to a generator on unknown option..

    • โž• Add N-API generator support to the CLI.

    • Extract and re-use GetIncludePath across multiple generators.

    • ๐Ÿ›  Fix TU.FileRelativeDirectory to be more robust against some paths.

    • Fully resolve include dirs paths in driver option validation.

    • ๐Ÿ›  Fix ShouldGenerateClassNativeField to use NeedsBase instead of HasBase.

    • โšก๏ธ Update Class.HasNonIgnoredBase to use the actual base class.

    • ๐Ÿ›  Fix rename pass not handling some declarations due to early return.

    • ๐Ÿ“ฆ Manage package versions centrally

    • โž• Add LanguageVersion.CPP20 support

    • Only upload artifacts from master branch

    • โœ… Make unit tests independent of the generator

    • โœ… Simplify code that regenerates test bindings

    • Only use premake for native projects and improve c# projects.

    • ๐Ÿšš Move GeneratorTestFixture type to its own file.

    • ๐Ÿ›  Fix typo and move alignment offsets to cpp file

    • โœ… Export or implement accessible functions in tests

    • Export symbols for indirectly accessible constructors

    • ๐Ÿ— Publish artifacts for CI builds (#1533)

    • ๐Ÿ›  Fix importing/exporting redeclaration in symbols

    • ๐Ÿ— CI: Add Restore step to make it easier to analyze build times

    • Don't warn repeatedly about an existing LLVM dir

    • Don't download LLVM if its destination exists

    • ๐Ÿ›  Fix the expression-generator after changed paths

    • ๐Ÿ›  Fix a regressive crash when generating parser bindings

    • โœ‚ Remove redundant overrides from the generated C++/CLI

    • โš  Disable the msvc warning about unexported template specializations

    • ๐Ÿ›  Fix naive version comparison

    • ๐Ÿ›  Fix GCC version detection

    • ๐Ÿ— Move all LLVM files to /build/llvm

    • Ignore premake5 binaries

    • โœ‚ Remove secondary Zstandard compression from LLVM packages

    • ๐Ÿ— Show a message explaining how to build LLVM when a pre-built package is unavailable.

    • ๐Ÿ›  Fix wrong LLVM package name when GCC version is >= 10

    • โž• Add LLVM commands to build.sh

    • โœ… Test using a specialization from a dependent module

    • โž• Add install_tools target to build.sh and fix LLVM CI.

    • ๐Ÿ— Deprecate GCC 7 and add GCC 10 build for LLVM CI.

    • ๐Ÿšš Move generated .vcxproj files back to their original place

    • โž• Add missing -configuration option to build.sh script

    • 0๏ธโƒฃ Replace Generate*.bat files with a single generate.sh which uses VS2019 by default

    • โœ‚ Remove DownloadDeps.bat file

    • โž• Add build.sh and test.sh with execute permissions

    • ๐Ÿ Only search for MSVC toolchain in Windows

    • ๐Ÿ“ฆ Generate correct LLVM package name regardless of the current operating system

    • ๐Ÿ‘ Avoid using "action:vs* filter because there are better ones that are more specific (#1523)

    • Convert the visiting options to an enum

    • โšก๏ธ Update CanCheckCodeGenInfo to check function types as well.

    • Check for a dependent expression before walking variable initializer.

    • ๐Ÿ›  Some Premake robustness fixes for Clang toolchain.

    • ๐Ÿ–จ Use explicit native type printer kind in CLI headers code.

    • โœ… Ignore testing the incorrect marshalling of parameters typed const& to primitives

    • ๐Ÿ‘ Don't check the unsupported operator= for symbols

    • โž• Add initial NAPI and JS generator.

    • โž• Add initial QuickJS generator.

    • โž• Add C++ generator support to the CLI.

    • โœ‚ Remove artificial limitations for cross-generation in CLI.

    • Simplify target-specific message output code in CLI.

    • โž• Add a new option to set a prefix for generated files in CLI.

    • ๐Ÿ‘Œ Improve module naming heuristics and add an option for setting it explicitly.

    • ๐Ÿ‘ Implement C support as generator kind in CLI.

    • โ™ป๏ธ Refactor string.Format calls in CLI.

    • Implement Method.HasSameSignature for signature comparison.

    • Implement Method.ToString() to help with debugging.

    • ๐Ÿ— A temporary hack to deal with a bug in MSVC v142 - VS 2019 build tools

    • Don't wrap trivial constructors and destructors

    • Ensure bindings are regenerated as needed without using DisableFastUpToDateCheck (#1511)

    • Continue implementation of C++ generator.

    • โž• Add pass to fix up pure C++ methods to C++ generator.

    • ๐Ÿ–จ More robust C++ type printing of incomplete class declarations.

    • ๐Ÿ’พ Save existing parameter when doing C++ parameter type printing.

    • โž• Add initial C base generator.

    • Check if module exists before using it in C code generator.

    • More robust enum generation for C family languages in C code generator.

    • ๐Ÿ›  Fix C generator GenerateMethodSpecifier to support pure and const specifiers.

    • โž• Add set of generated declarations to CLITypeReferences.

    • โž• Add initial block visitor to GeneratorOutputPass.

    • Only add files to module if module is not null.

    • โž• Add per-declaration support for decl maps.

    • โž• Add BlockGenerator.NeedsNewLine helper property.

    • ๐Ÿ›  Fix class nested enums to be handled by the rename pass.

    • Document recently added GenerationOutputMode option.

    • โž• Add TypeQualifiersMode to Type and implement in C++ type printer.

    • โž• Add new VisitQualifiedType overload to visitors.

    • Set include path as weell as file path when creating a new TU.

    • ๐Ÿ›  Fix IsGeneratedOverride to take virtual methods into account.

    • โž• Add some helper class hierarchy methods.

    • ๐Ÿ›  Fix CppMarshal WriteClassInstance to deal with incomplete classes.

    • Rework Generator interface and add GenerationOutputMode option.

    • ๐Ÿ‘Œ Improve IsTypeComplete to be more robust.

    • ๐Ÿ‘Œ Improve ignored check for decls with explicit generation kinds.

    • Generate acessor methods for C targets in field to property pass..

    • Set the correct enum integer type in GenerateEnumFromMacros.

    • ๐Ÿ›  Fix ignored base checking in CheckIgnoredDecls.

    • ๐Ÿ“œ Be more strict when constructing a regex for parsing macros.

    • ๐Ÿ– Handle enum items in rename pass.

    • ๐Ÿ›  Fix code to use BaseClass property instead of first base.

    • โž• Add initial implementation of declaration maps.

    • โœ‚ Remove unsupported Visual Studio versions from generate options

    • ๐Ÿ“‡ Rename GenerateProjects.bat to Generate.bat

    • โž• Add GenerateVS2019.bat shortcut similar to GenerateMake.bat

    • Prevent projects from picking up obj files that are generated sometimes (#1508)

    • ๐Ÿ›  Fix all of our warnings in the parser

    • ๐Ÿ›  Fix error in Tests.lua by requiring gmake2 module.

    • โž• Add a GCC 9 build to the LLVM CI build matrix.

    • ๐Ÿ›  Fix minor issue when invoking Premake without an action.

    • Compress LLVM archives using zstd.

    • ๐Ÿ— Call MSBuild in x86 build with Win32 platform.

    • ๐Ÿ— Pass the target architecture when building LLVM.

    • ๐Ÿ— Publish artifacts after building LLVM.

    • ๐Ÿ›  Fix VS environment paths by setting global env variables.

    • ๐ŸŽ Do not use LLD when building LLVM under macOS.

    • Generate C++ for constructors of abstract types

    • ๐Ÿ“ฆ Use NUnit3TestAdapter package (#1504)

    • โž• Add a build for LLVM to the CI

    • ๐Ÿ Use correct C# parser bindings for windows x64 (#1501)

    • Avoid installing NUnit if its already installed. (#1500)

    • โœ… Generate code from tests where libraries appear

    • ๐Ÿ›  Fix generation of SequentialLayout structures (#1499)

    • โšก๏ธ Update parser bindings. (#1497)

    • ๐Ÿ›  Fix CS0162 warning about unreachable code (#1492)

    • ๐Ÿ›  Fix CS0109 warnings about new keyword not being required. (#1493)

    • Enable Multi-processor Compilation (MSVC)

    • ๐Ÿ›  Fix C4273 warnings about inconsistent dll linkage (#1491)

    • ๐Ÿ›  Fix warnings about unnecessary using directives. (#1489)

    • ๐Ÿ›  Fix C4251 warnings (#1487)

    • Avoid generating an interface with a Dispose method if we already inherit from IDisposable. (#1486)

    • ๐Ÿ›  Fix finding of symbols for members of templates

    • โš  Always ignore warnings about missing PDB files

    • โฌ‡๏ธ Reduce number of "download progress" messages. (#1482)

    • Mark variables with constant expressions as found

    • ๐Ÿ‘‰ Make the CPP ABI visible only to the STD symbols

    • Generate valid C++ for destructors of nested types

    • Always use the mangled names as reported by Clang

    • ๐Ÿ‘ท Switch CI to GitHub Actions

    • Call the destructor instead of deleting the object in the generated symbols

    • ๐Ÿ“œ Regenerate the parser bindings with sequential layouts (#1479)

    • โœ‚ Remove dummy variable and use discards instead available since C# 7.0 (#1478)

    • Fallback to LayoutKind.Explicit when a custom alignment is specified. (#1476)

    • โœ‚ Remove Layout.GetSize() method as it's no longer relevant (#1474)

    • ๐Ÿ›  Fix String.CSharpSignatureType returning incorrect type when the given type is a pointer or a reference. (#1473)

    • ๐Ÿ”ฆ Expose if a variable is a constant expression

    • ๐Ÿ›  Fix the generation of sequential layouts

    • ๐Ÿ— Create projects which always build generated code

    • Simplify the marshalling of returned pointers (#1470)

    • VTable: improve codegen & make it thread safe (#1469)

    • Create VTables class to cache delegates pointing to native virtual methods (#1468)

    • ๐Ÿ‘Œ Improve UTF32Marshaller performance (#1467)

    • ๐Ÿ‘Œ Improve generation of C# (#1466)

    • ๐ŸŽ Reduce calls to ConcurrentDictionary to improve performance (#1464)

    • Ensure expression is a valid float constant before trying to append f suffix (#1465)

    • ๐Ÿ›  Fix passing of CMake options to LLVM on Windows

    • โšก๏ธ Update the kind of completed specializations (#1460)

    • ๐Ÿ›  Fix ambiguous conversion functions (#1458)

    • Prevent string destructor from being called twice when its passed by value (#1455)

    • โœ‚ Remove unsupported calling convention usage (#1454)

    • ๐Ÿ›  Fix PInvokeStackImbalance when calling C++ methods (#1453)

    • Load symbols at startup to avoid very expensive ResolveSymbol calls everywhere (#1447)

    • ๐Ÿ›  Fix IntPtr array marshalling bug and move hard to read code to CppSharp.Runtime (#1446)

    • ๐Ÿ›  Fix string marshalling bug and move hard to read code to CppSharp.Runtime (#1445)

    • Add support for const char32_t* and fix const wchar_t* in linux / osx (#1444)

    • Copy arrays of primitive values using System.Buffers.MemoryCopy (#1440)

    • ๐Ÿ›  Fix marshalling for bool arrays (#1439)

    • ๐Ÿ›  Fix wrong [MarshalAs(UnmanagedType)] for strings (#1438)

    • โœ‚ Remove call argument to fix broken build (#1436)

    • ๐Ÿ‘ Basic support for static constexpr variables (#1435)

    • โž• Add support for C++ character literals (u, U, L) (#1434)

    • โฌ†๏ธ Upgrade premake in preparation for .NET Core (#1298)

    • 0๏ธโƒฃ Use C# 'default literal' to avoid using a type's name that may be renamed (#1432)

    • โž• Add missing Variable.Type null check. (#1430)

    • ๐Ÿ›  Fix generated constructor cant use placement new when class overloads operator new (#1431)

    • ๐Ÿ›  Fix generation of VS projects under non-Windows platforms.

    • ๐Ÿ›  Fix wrong marshalling for static member arrays (#1428)

    • ๐Ÿ›  Fix wrong generated destructor

    • Ignore non-const data() method for std types like basic_string c++17

    • ๐Ÿ›  Fix crash when trying to read a CXXRecordDecl that doesn't have a definition (#1426)

    • โœ‚ RemovePass is now generic.

    • โž• Added the ability to remove a built-in pass.

    • ๐Ÿ›  Fix anonymous member name colliding with enclosing type name (#1425)

    • ๐Ÿ‘ Allow the users to overwrite CppSharp type maps.

    • Find libraries even when given with no extensions

    • โž• Add an option for building with Visual Studio 2019

    • ๐Ÿ›  Fix GCC path detection for Ubuntu 20.

    • ๐Ÿšš Move libraries to a new class for linking options

    • ๐Ÿ›  Fix memory leaks when using the driver

    • ๐Ÿ“œ Simplify ClangParser by making it static

    • Pack the lld headers as well

    • โœ… Import native DLL-s (tests and parser) with MSVC

    • โœ… Implement and export all methods in tests

  • v0.10.5 Changes

    June 27, 2020
    • Don't add ABI-specific parameters when wrapping C

    • Prioritize public non-field properties when resolving naming conflicts

    • ๐Ÿ›  Fix patching of virtual tables for MSVC with RTTI

    • ๐Ÿ†“ Free the memory of the patched v-tables

    • ๐Ÿ›  Fix parsing of member pointers with MSVC

    • Generate valid C# for constructors taking const&

    • Generate valid C# for returned function pointers

    • ๐Ÿ”ฆ Expose returned values of non-void setters

    • Ensure enumerations lack conflicts when renamed

    • ๐Ÿ›  Fix generation for fields of type const reference

  • v0.10.4 Changes

    May 23, 2020
    • ๐ŸŽ Simplify the required headers for macOS bindings

    • ๐Ÿ— Option to allow caller to specify it does not want unchanged output files to be modified. This supports incremental build in VS. (#1373) - Ali Alamiri [email protected]

    • CreateInstance factory overload to pass flag informing wrapper if it should own the native pointer passed to it. - Ali Alamiri [email protected]

    • ๐Ÿง force bash use to avoid ./premake5-linux: 3: ./premake5-linux: Bad substitution error if other default shell in the system - Lorenzo Delana [email protected]

    • Made the original virtual tables static too

    • Pass native pointers to bases in the generated C#

    • ๐Ÿ–จ Check type maps when printing C++ for pointers

    • Do not add type alias templates twice to the AST

    • ๐Ÿ›  Fix all leaks of memory in the old expressions

    • โž• Add template functions to their context

    • ๐Ÿ›  Fix leaking memory by removing a useless assignment

    • ๐Ÿ›  Fix leaking the memory of an entire Clang AST

    • ๐Ÿ–จ Ignore type maps when printing C++ for symbols

    • ๐Ÿ–จ Implement more accurate managed type printing in C++ type printer.

    • ๐Ÿ–จ Use a native type printer context when looking for type maps in CSharpSourcesExtensions.DisableTypeMap.

    • ๐Ÿ–จ Use explicit type printer when printing types in C# GenerateMethodSpecifier.

    • โ™ป๏ธ Refactor CodeGenerator.GenerateMethodSpecifier to allow explicit specifier kind.

    • Do not check declaration access for explicitly generated declarations.

    • ๐Ÿ›  Fix TranslationUnit.FileRelativeDirectory to be more robust against null include paths.

    • ๐Ÿ›  Fix formatting to of Declaration.GenerationKind to ease debugging.

    • Ignore implicitly deleted copy constructor methods.

    • Correctly marshal constant arrays in C++/CLI (#1346)

    • Marshal pointer to primitive typedefs in C++/CLI (#1355) - Ali Alamiri [email protected]

    • ๐Ÿ›  Fix a regression when renaming classes

    • ๐Ÿ›  Fix naming conflicts with nested types and members

    • publish the clang lib folder - Ali Alamiri [email protected]

    • ๐Ÿ“œ Implement basic support for parsing function-like macros.

    • ๐ŸŒ Implement TranslationUnit.ToString() to help with debugging.

    • โž• Add debug option and flags to the Premake build and compile scripts.

    • Generate valid C# for parameters typedef-ed to mapped types

    • โšก๏ธ Update the version of Mono used for builds (CI)

    • ๐Ÿ›  Fix the regressed C# marshalling of char*

    • ๐Ÿ– Handle pointer to pointer param (#1343) - Ali Alamiri [email protected]

    • ๐Ÿ– Handle returned pointers to std::vector in C++/CLI - Ali Alamiri [email protected]

    • Implement abstract templates to call virtuals

    • ๐Ÿ–จ Correctly align printed information for debugging

    • Set the render kind of inline command comments

    • ๐Ÿ›  Fix all memory leaks in tests

    • Generate by ref parameters of type a pointer to enum

    • ๐Ÿ‘‰ Use UnsupportedType description for type name instead of empty string (#1339) - Ali Alamiri [email protected]

  • v0.10.3 Changes

    April 09, 2020
    • Ensure complete template specializations in AST

    • โž• Add an option and checking for generation of deprecated declarations

    • ๐Ÿ—„ Implement parsing and AST processing of C++ deprecated attributes

    • ๐Ÿ–จ Make sure we use a native type printer for symbols code generation

    • Git ignore new include folders for cross generation

    • ๐Ÿ›  Fix marshaling for wchar_t in C++ generator mode

    • ๐Ÿ›  Fix includes setup for parser bindings generation in macOS host platform

    • ๐Ÿ›  Fix generation of field property setters in C++ generator

    • ๐Ÿ›  Fix FieldToProperty pass to ignore non-public properties in C++ generator

    • ๐Ÿ›  Fix declaration access for generated fields flattened from anonymous types

    • ๐Ÿ”„ Change standard type maps to be more specific about its supported generators

    • Generate forward ref header for enum defined inside a class in C++/CLI (#1322) - Ali Alamiri

    • ๐Ÿšš Move the GenerateInclude logic to GetTypeReference (#1319) - Ali Alamiri

    • ๐Ÿ›  By reference enum param fixes (#1321) - Ali Alamiri

    • โž• Add declaration context as object to function class block - Ali Alamiri

    • โž• Add blocks for ctor, dtor, and finalizer bodies. Add constructor that takes a bool from the caller to indicate if the callee should own the pointer passed to it or not - Ali Alamiri

    • โž• Add generic type map handling methods for later refactoring of generators

    • ๐Ÿ›  Fix type printing of typedef qualifiers in C++ type printer

    • ๐Ÿ›  Fix C++ parser ambiguity in generation of C++ method identifiers by wrapping them in parens

    • ๐Ÿ›  Fix generation of C++ constructor for abstract classes

    • ๐Ÿ›  Fix generation of native instance constructors in C++ generator

    • ๐Ÿ›  Fix marshaling of C++ references in C++ marshaler

    • โ™ป๏ธ Minor refactoring to allow better IDE inspection and debugging

    • ๐ŸŒ Rewrite GenerateEnumFromMacros to search through multiple translation units

    • ๐Ÿ›  Fix CppTypePrinter to check for typemaps for tag types and keep track of them

    • ๐Ÿ–จ Implement a few overloads in CppTypePrinter that trigger the type maps checking code

    • ๐Ÿ›  Fix ignore type checking to take type maps into account

    • ๐Ÿ›  Fix ignored declaration checking to properties desugar field types

    • ๐Ÿ›  Fix GetterSetterToProperty pass heuristic to also detect โ€œonโ€ as a verb

    • ๐Ÿ–จ CppTypePrinter now takes a BindingContext for further usage in type maps handling

    • Only generate โ€œoverrideโ€ in header files for C++ generator

    • ๐Ÿšš Guard MoveFunctionToClassPass pass registration against CLI and C# generators

    • Ignore generated field method acessors when processing properties in GetterSetterToProperty

    • โž• Add cli namespace to header to ensure the array type does not conflict with other types called array - Ali Alamiri

    • ๐Ÿ›  Marshal non primitive fixed arrays (#1311) - Ali Alamiri

    • Ensure typedefs of std::vector are mapped - Ali Alamiri

    • ๐Ÿ“ฆ Simplify the structure of the LLVM package

    • 0๏ธโƒฃ Always keep default constructors in the AST

    • ๐Ÿšš Keep copy/move constructors and assignment in AST

    • ๐Ÿšš Move the body of a template function to its header

    • ๐Ÿ–จ Implement proper array printing with C array name suffix notation

    • ๐Ÿ›  Fix CLITypeReferences so it generates regular C++ code in C++ generator mode

    • โž• Add CXXOperatorArityZero enum item for further usage in subsequent code

    • ๐ŸŽ‰ Initial C++ generator backend

  • v0.10.2 Changes

    March 27, 2020
    • Associate getter/setter methods with their associated property in GetterSetterToProperty pass

    • โž• Added optional getter/setter pair creation for fields in FieldToProperty pass

    • โ™ป๏ธ Refactor CLI handling of enums to be based on generic C generator

    • 0๏ธโƒฃ Default to .h file extension in C code generator

    • โž• Add helper methods to ignore and generate specific translation units

    • Guard a few more language-specific passes in the driver

    • ๐Ÿ›  Fix generation of multiple interfaces in C# for some edge cases

    • ๐Ÿ›  Fix templates to be abstract if any specialization is abstract

    • ๐Ÿ›  Fix TranslationUnit.FileRelativePath for invalid units

    • ๐Ÿ–จ Re-use common C++ declaration type printing code in CLITypePrinter

    • ๐Ÿ‘ Allow changing the default TypePrinterContextKind when creating a type printer

    • โœ‚ Remove needless pointer offsets from generated C#

    • ๐Ÿ›  Fix a crash for secondary bases with secondary bases

    • ๐Ÿ›  Fix bug related to processing of potential property methods

    • Ensure generated symbols can use placement new

    • ๐Ÿ›  Fix Mono not being found on the PATH on recent macOS versions

    • ๐Ÿ‘ป Instantiate exception specifications before reading

    • โšก๏ธ Update LLVM to the latest version

    • ๐Ÿ›  Fix a syntax error in CMake listing Clang modules

    • ๐Ÿ— Enable building lld as part of LLVM

    • โช Restore modules needed for compiling with Clang

    • ๐Ÿ‘Œ Support Visual Studio 2019 for building Clang

    • โšก๏ธ Update Travis to Ubuntu Xenial 18.04

    • โšก๏ธ Simplify and optimize the printing of pointers in C++

    • ๐Ÿ›  Fix printing of function pointers in C++

    • Don't export symbols for explicit specializations

    • โœ… Avoid invalid template specializations in tests

    • โšก๏ธ Update the printing of comments to the new Clang

    • โ†ช Work around MSVC 32 crashing reading of exported symbols in Mach-O

    • ๐Ÿ‘Œ Improve Xcode toolchain lookup to be more robust

    • Implement logic for -fgnuc-version= argument required by LLVM

    • โšก๏ธ Update LLVM to the latest version

    • โ™ป๏ธ Refactor Clang builtins directory logic and move it to the managed side

    • Escape C# strings correctly

    • ๐Ÿ‘Œ Improve CS_INTERNAL so it now applies to all declarations

    • ๐Ÿ–จ Print the parser target triple in verbose mode

    • ๐Ÿ— Always re-create the Clang resource directory when building

    • Cleanup Clang resource directory lookup logic

    • โœ‚ Remove old workaround for testing issue that does not seem necessary anymore

    • Git ignore .vscode directory

    • ๐Ÿ— Workaround Premake issue when copying the resource include directories at build time

    • ๐Ÿ›  Fix warning about #pragma once in source file

    • โšก๏ธ Update bootstrap tool to run against latest LLVM

    • โšก๏ธ Update bootstrap tool to find LLVM build directory

    • โž• Add options to disable tests and examples from the build

    • ๐Ÿ‘Œ Improve the ignoring of dependent name types

    • Implement UnresolvedUsingType and UnresolvedUsingTypename

    • ๐Ÿ›  Fix the tests for exception types

    • Switch to Xcode 11 in Travis CI

    • ๐Ÿ–จ Extend printing and reading of exception types

    • ๐Ÿ›  Fix the check to ignore dependent name types

    • Ignore unused destructors when generating symbols

    • ๐Ÿ›  Fix the printing of "noexcept" in C++

    • โœ… Make destructors virtual in abstract classes for tests

    • Avoid generating abstract implementations for template classes

    • ๐Ÿ›  Fix template type checking in CovariantTypeComparer

    • Git ignore nested temporary obj folders

    • ๐ŸŽ Workaround System.TypeLoad exception when running test-suite on macOS

    • ๐Ÿ›  Fix enum with zeros for hex literals

    • ๐Ÿ›  Fix the moving of free functions to classes to match by module too

    • ๐Ÿ‘ Generate valid C# when an external module has an unsupported operator

    • ๐Ÿ›  Fix a possible overflown stack when ignoring

    • ๐Ÿ‘ฎ Force compilation of all functions of specializations

    • Fill in missed values when cloning functions

    • โšก๏ธ Optimize the moving of functions to classes

    • โœ‚ Delete a custom pass added as standard

    • ๐Ÿ›  Fix the C++ printing of function pointers in parameters

    • Eliminate generated symbols for ignored functions

    • ๐Ÿ›  Fix printing of type defs in C++

    • โœ‚ Remove the internal C# functions for virtual destructors

    • Give unique names to exported inlined functions

    • Generate symbols for methods of specializations

    • โšก๏ธ Optimize all passes which visited useless items

    • ๐Ÿ‘‰ Make the pass for properties more extendable

    • Simplify overrides of overrides of secondary bases

    • โšก๏ธ Optimize calls to base getters in properties

    • ๐Ÿ›  Fix comparison of char and const char* in overloading

    • โšก๏ธ Optimize the pass for properties

    • Clarify limitations around exceptions and RTTI

    • Destroy returned by value std::strings

    • โฌ†๏ธ Upgrade ANSI marshalling to UTF-8 marshalling

    • Generate valid C# when a renamed override causes conflicts

    • Ensure protected nested types are accessible with multiple inheritance

    • ๐Ÿ›  Fix the regressed indentation of printed comments

    • Generate projects for .NET 4.7 to use new features

    • Simplify the generated C# for marshalling strings

  • v0.10.1 Changes

    July 04, 2019
    • ๐Ÿ›  Fix the getting of references to pointers in C#

    • ๐Ÿ›  Fix the passing of references to pointers in C#

    • Prefer non-mapped types when resolving ambiguous overloads

    • ๐Ÿ‘‰ Make indexers use non-trivial copy ctors if any

    • ๐Ÿ›  Fix a memory leak when passing an indirect std::string

    • ๐Ÿ— Build the generator before test bindings for easy testing

    • ๐Ÿ›  Fix memory leaks in the map for std::string

    • ๐Ÿ›  Fix the passing of std::string by value

    • Guard against null for objects passed by value

    • Generate valid C# for implicit conversion to const char*

  • v0.10.0 Changes

    • Generate valid C# when passing a const ref to char

    • Generate valid C# when a secondary base has a public anonymous field

    • Generate valid C# when a method from a secondary base has no native symbol

    • Generate valid C# for typedef-ed type parameters

    • Ensure found type maps always contain the type sought after

    • Flatten anonymous types to avoid empty names

    • 0๏ธโƒฃ Generate valid C# for template parameters with a default value

    • ๐Ÿ›  Fix returned objects by value attributed with inalloca

    • ๐Ÿ›  Fix default arguments to only map to null if pointers

    • Generate valid C# for returned const void pointers

    • ๐Ÿ›  Fix regressions with void pointers and references

    • Generate valid C# for r-values to void pointers

    • ๐Ÿ Make the default build for Windows 64-bit

    • ๐Ÿ Sped the LLVM build on Windows up by parallelizing

    • Generate valid C# when a field with an anon type starts with '$'

    • Generate valid C# when a function is named "get"

    • 0๏ธโƒฃ Enable Clang-based look-up for system includes by default

  • v0.9.4

    June 25, 2019
  • v0.9.3

    June 25, 2019