CppSharp v1.0.1 Release Notes

Release Date: 2021-12-30 // 11 months ago
    • Generate valid C# for independent specialisations with nested fields

    • Don't revisit parameters when checking to ignore

    • Generate valid C# for templates with external specializations only

    • โฌ‡๏ธ Drop CI with windows 32-bit because of premake

    • Generate valid C# for nested in external specializations

    • Generate valid C# for independent external specializations

    • Generate valid C# for nested external specializations

    • Generate valid C# for unresolvable base templates

    • Generate valid C# for classes with dependent fields nested in templates with independent fields

    • Generate valid C++ for redeclaration of friends

    • Generate valid C++ for specialisations with void

    • Generate valid C# for pure functions returning or taking dependent pointers

    • ๐Ÿ›  Fix a crash when processing templates with variable arguments (#1641)

    • Report errors when linking of generated C++ fails

    • Ensure complete classes in class templates

    • ๐Ÿ–จ Print C++ for some kinds of non-type template parameters

    • ๐Ÿ‘ Always ignore functions returning unsupported specializations

    • Generate valid C# for unions in templates with non-type args

    • ๐Ÿ›  Fix a test for the new msvc in vs 2022

    • Match names of parameters in templates to their specializations

    • โ†ช Work around adding an STD name-space to a custom header

    • Generate valid C# for fields with types system template specializations

    • Generate valid C# for variables which use float

    • Generate valid C# for variables with > 1 arg

    • Generate valid C++ for variadic functions

    • ๐Ÿ›  Fix C# layouts for classes with nameless unions

    • Generate valid C# for copy ctors with extra args

    • Generate valid C# for destructors of templates with dependent fields

    • ๐Ÿšš Don't generate or move ignored specializations

    • ๐Ÿ“‡ Rename templates only used through aliases

    • Generate valid C# for internal fields of type external specialization

    • Generate valid C# for static object-typed fields

    • Trim specializations only used in ignored types

    • Instantiate specialized classes nested in templates

    • Generate valid C++ for protected inline functions

    • Generate valid C++ for parameters by value

    • Generate valid C++ for conversion operators in name-spaced classes


Previous changes from v1.0.0

    • โž• Add built-in compilation of extra symbols

    • ๐Ÿ›  Fix naming for function pointers with strings

    • ๐ŸŒ Ignore external (no module) translation units

    • ๐Ÿ›  Fix instantiation of specializations not to crash

    • 0๏ธโƒฃ Generate valid C# for default args: typedefed refs to enums assigned empty ctors

    • Extend finding of functions to also get overloads

    • 0๏ธโƒฃ Ensure valid C# for default args assigned secondary bases

    • Generate valid C++ for protected ctors of pure classes

    • Generate valid C# for constants in namespaceless modules

    • Generate valid C# for types nested in external typedef-ed specializations

    • Generate valid C# with explicit external specializations

    • ๐Ÿ›  Fix templated indexers returning objects

    • 0๏ธโƒฃ Generate valid C# for specializations in default args

    • Generate valid C++ for pure implemented dtors

    • ๐Ÿ†“ Free returned by value instances, not object ones

    • Generate valid C# for forwarded specializations

    • 0๏ธโƒฃ Bind default constructors with dependent pointers

    • Generate valid C# for setters returning Booleans

    • Place returns as needed without an extra block

    • 0๏ธโƒฃ Generate valid C# for default params in specialisations

    • Resolve overloads with typedef-ed mapped params

    • Generate C++ deconflicted with system functions (#1626)

    • ๐Ÿ–จ Don't print tags for nameless and typedef classes

    • ๐Ÿ›  Fix C4099 (class as struct) in generated C++/CLI

    • Bind the tag kind (struct, class, enum) of a type

    • ๐Ÿ“œ Regenerate the parser bindings

    • โœ‚ Delete the C++ copy when returning by value (#1623)

    • โœ‚ Delete the longer needed patching of msvc headers

    • Don't evaluate dependent variables

    • โœ‚ Delete the longer needed patching of msvc headers

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

    • ๐Ÿ›  Fix for "vector subscript out of range" exception (#1621)

    • ๐Ÿ›  Fix incorrect dtor call for non-owned instances (#1615)

    • ๐Ÿ›  Fix regressed marshalling of lists in C++/CLI

    • ๐Ÿ›  Fix for Visual Studio 2019 16.10 (#1614)

    • Generate valid C# for public fields of typedef-ed primitive pointer

    • Resolve names matching those of system functions

    • โž• Add a mechanism to selectively initialize allocated unmanaged memory in the default constructor.

    • ๐Ÿ‘ Much improved support for marshaling const char* to string

    • โœจ Enhanced ExpressionEvaluator to return implicitly typed uint, long, and ulong values from EvaluateNumber when there is no literal type suffix applied to a numeric expression string.

    • ๐Ÿ‘ท Attempt to resolve a GitHub CI Actions isue: CI is currently failing because restore can't find NUnit and friends. The error message and google search indicate that GitHub Actions is only looking in the "Microsoft Visual Studio Offline Packages" cache. Add a nuget.config file to in an attempt to tell GitHub Actions to query nuget.org in addition to the offline cache.

    • bug fix: When generating the get accessor for a field composed of an embedded array of structs use __GetOrCreateInstance to initialize the managed array wrapper rather than __CreateInstance so that __Instance holds a pointer to the memory allocated for the array in the outer struct rather than an independent copy of that memory.

    • Repaired broken alignment padding generation for structs with embedded arrays of structs

    • Generate comments for field

    • ๐Ÿ›  Fix the regressed generation of C++ for variables

    • โž• Add work-in-progress TypeScript interface bindings generator.

    • โž• Add MarkEventsWithUniqueIdPass pass for global event handling.

    • Maintain DeclarationsList integrity by clearing item offsets.

    • โž• Add CppSharp VS Code workspace.

    • Implement two-step initialization for QuickJS.

    • โž• Add QuickJS runtime project and initial features.

    • ๐Ÿ‘Œ Improve support for default arguments in NAPI generator.

    • โž• Add support for generation of default argument expressions in C generator.

    • โž• Add experimental GenerateExternalDataFields option and supporting code.

    • โž• Add C code generator GenerateClassEvents for common event handling.

    • ๐Ÿ–จ Introduce a scope kind stack for type printers.

    • Rework C enum generation for more accurate handling.

    • โž• Add convenience constructor to ArrayType.

    • Create target directory when generating files.

    • โž• Add new pass to convert C++ FastDelegate types into CppSharp delegates.