Releases: dotnet/ClangSharp
Releases · dotnet/ClangSharp
v14.0.0-rc1
What's Changed
- Update specified version of ClangSharpPInvokeGenerator by @will-jj in #335
- Allow private access specifiers on functions by @saucecontrol in #341
- Fix clangsharp_Type_getTemplateArgument for record decl by @xoofx in #337
- Add note about libclang/libClangSharp runtime and restore discussions by @ihnorton in #320
- Updating ClangSharp to support UTF-8 literals in preview mode by @tannergooding in #342
- Updating to use the latest System.CommandLine by @Keboo in #343
- explicit AllowMultipleArgumentsPerToken on string[] options by @miloush in #348
- Improve UTF-8 string literal, Guid, and attribute handling by @tannergooding in #352
- Ensure that bool as a struct field is correctly handled by @tannergooding in #353
- Fix paths for dotnet 6 by @kant2002 in #356
- Add support for varargs. by @Berrysoft in #344
- Ensure that --with-access-specifier works with
*=internal
by @tannergooding in #359 - Do not remove parethensis by @kant2002 in #358
- Update versions and help output in
README.md
by @SeeminglyScience in #361 - Fix
lpVtbl
field declaration when bothexplicit-vtbls
andgenerate-marker interfaces
are specified by @SeeminglyScience in #363 - Version check skip option and patch verison leniency by @Beyley in #368
- Updating VersionSuffix to rc1 by @tannergooding in #370
- Adding tests and validate handling for various global string literal variables by @tannergooding in #371
- Ensure that C incomplete arrays are correctly handled by the generator by @tannergooding in #372
- Ensure that multiple-inheritance scenarios generate unique field names by @tannergooding in #373
- Fixing C Incomplete Array to be treated as a Constant Array of length 1 by @tannergooding in #374
- Adding support for signing by @tannergooding in #375
New Contributors
- @will-jj made their first contribution in #335
- @saucecontrol made their first contribution in #341
- @xoofx made their first contribution in #337
- @ihnorton made their first contribution in #320
- @Keboo made their first contribution in #343
- @miloush made their first contribution in #348
- @Berrysoft made their first contribution in #344
- @SeeminglyScience made their first contribution in #361
- @Beyley made their first contribution in #368
Full Changelog: v14.0.0-beta1...v14.0.0-rc1
v14.0.0-beta1
What's Changed
- Updating version suffix to beta2 and move to use NUnit by @tannergooding in #308
- Ensure that non-virtual C++ instance methods without a body have an inserted parameter for pThis by @tannergooding in #309
- Adding a nightly nuget feed by @tannergooding in #310
- Add a link to the source browser by @tannergooding in #311
- Fix Nightly NuGet Feed URL by @yamachu in #312
- Add support for marking methods as manual imports and fixing the PInvokeGeneratorConfiguration to be more forward compatible by @tannergooding in #313
- Ensure anonymous enums get tracked as part of a top-level class by @tannergooding in #314
- Ensure that log-potential-typedef-remappings doesn't include typedefs from every file by @tannergooding in #316
- Add some additional handling for patterns found when generating bindings for GDI+ by @tannergooding in #317
- Fix when the base vtbl is emitted inline by @tannergooding in #318
- Update link to win32metadata. by @teo-tsirpanis in #329
- Regenerating bindings for v14.0.0 by @tannergooding in #330
New Contributors
- @yamachu made their first contribution in #312
- @teo-tsirpanis made their first contribution in #329
Full Changelog: v13.0.0-beta1...v14.0.0-beta1
v13.0.0-beta1
What's Changed
- Revert the handling for struct packing as it regresses more scenarios than it fixed by @tannergooding in #263
- Minor fix the libclangsharp build instructions by @danieljennings in #262
- Fix clangsharp_Cursor_getDefinition not handling declarations with no definition by @PathogenDavid in #264
- Merging various fixes and improvements by @tannergooding in #269
- Adding support for generating unmanaged constants by @tannergooding in #271
- Updating Cursor and Type to avoid repeated hot path allocations by @tannergooding in #272
- Updating to Clang v13.0.0 by @tannergooding in #274
- Ensure anonymous unions stay "anonymous" and not "unnamed" by @tannergooding in #275
- Fix extraneous
using System;
by @reflectronic in #276 - Print version information on
--version
by @tannergooding in #277 - Ensure that test outputs are marked "partial" by @tannergooding in #278
- Adding support for overriding the access specifier by @tannergooding in #279
- Ensure that all new kinds are being properly handled by @tannergooding in #280
- Greatly improve the understanding of the
log-potential-typedef-remappings
feature by @tannergooding in #281 - Moving forward to net6.0 and fixing a few issues around -m64 by @tannergooding in #282
- Add support for transparent structs, automatically generating the used attributes/helper types, and to simplify
NativeTypeName
output in a few scenarios by @tannergooding in #284 - Adding support for specifying a transparent struct kind by @tannergooding in #285
- Add support for avoiding pinning when returning a ref to an anonymous pointer field by @tannergooding in #286
- Add support for trimmable vtbls, marker interfaces, and SupportedOSPlatformAttribute by @tannergooding in #287
- Add support for a new --with-namespace option by @tannergooding in #288
- Updating repo for transfer to the .NET Foundation by @tannergooding in #289
- Adding support for explicitly including members to bind by @tannergooding in #290
- Adding support for overriding the output class for constants and methods by @tannergooding in #291
- Handle attributes for class remappings by @tannergooding in #292
- Ensure that top level classes/structs correctly mark themselves as unsafe and include the right namespace for tests by @tannergooding in #293
- Provide a few new features for C# 10 and .NET 6 by @tannergooding in #299
- Add a few more options to help with "feature-completing" a set of bindings by @tannergooding in #301
- Resolve dotnet-org-policy PR15 by ensuring we only link to the foundation CoC by @tannergooding in #303
- Changing CI over to use GitHub Actions by @tannergooding in #304
- Fixing up some URLs and variables used for versioning by @tannergooding in #305
- Temporarily disable packing for ClangSharpPInvokeGenerator by @tannergooding in #306
- Disable publishing of nightly builds until the permissions issue can be resolved by @tannergooding in #307
New Contributors
- @danieljennings made their first contribution in #262
Full Changelog: v12.0.0-beta2...v13.0.0-beta1
v12.0.0-beta2
What's Changed
- Updating to Clang v12.0.0 by @tannergooding in #235
- Specify llvm branch in readme by @FriendlyChicken in #236
- Document how to use local Clang on Linux by @kant2002 in #242
- Fix build with Clang 12 and install the native lib by @zeule in #244
- Handle virtual destructors by @zeule in #243
- Be explicit on which symbols are exported by @zeule in #247
- Ensure the translation unit is kept alive by @tannergooding in #248
- Single quote must be escaped otherwise ''' is generated instead of '''. by @ronaldvanmanen in #249
- Fix looking for libclang10 when 12 should be searched for by @ThadHouse in #252
- Provide more information in Desc structures by @andrew-boyarshin in #228
- Fixing some low hanging bugs. by @tannergooding in #256
- Fix additional low hanging bugs by @tannergooding in #257
- Ensure that the record packing and calling convention are correct regardless of -m32 or -m64 by @tannergooding in #258
New Contributors
- @FriendlyChicken made their first contribution in #236
- @kant2002 made their first contribution in #242
- @zeule made their first contribution in #244
- @ronaldvanmanen made their first contribution in #249
Full Changelog: v12.0.0-beta1...v12.0.0-beta2
v12.0.0-beta1
What's Changed
- Fixing various bugs, analyzer warnings, and adding very basic template support by @tannergooding in #226
- Mark ternary macros that can be evaluated as constants as const by @ThadHouse in #221
- Introduce EnumDesc, add ability to output source location attribute by @andrew-boyarshin in #227
- Updating to Clang v12.0.0 by @tannergooding in #235
New Contributors
- @ThadHouse made their first contribution in #221
- @andrew-boyarshin made their first contribution in #227
Full Changelog: v11.0.0-beta3...v12.0.0-beta1
v11.0.0-beta3
What's Changed
- Fixing build scripts to use pwsh and to call GenerateMetadataSource.ps1, rather than .cmd by @tannergooding in #208
- Fix required for win32metadata project by @sotteson1 in #210
- Abstract away output mechanisms & add support for XML dumps by @Perksey in #206
- Updating the tests coverage by @tannergooding in #211
- Adding test coverage for the XML generator by @tannergooding in #212
- Updating libClangSharp to have more extensive support for the underlying AST by @tannergooding in #213
- Adding some basic documentation on usage by @tannergooding in #214
- Cleanup to resolves some bugs and codegen issues by @tannergooding in #215
- Ensure the right call conv is checked for x86 Windows by @tannergooding in #216
- Ensure remapping and anonymous record names are correct by @tannergooding in #219
- A couple fixes for the win32metadata project by @sotteson1 in #218
New Contributors
Full Changelog: v11.0.0-beta2...v11.0.0-beta3
v11.0.0-beta2
What's Changed
- Ensure that ClangSharpPInvokeGenerator works with the System.CommandLine breaking changes by @tannergooding in #204
Full Changelog: v11.0.0-beta1...v11.0.0-beta2
v11.0.0-beta1
What's Changed
- Fixing some pain points around paths and ensure a couple of edge scenarios are handled by @tannergooding in #128
- Update dependencies and fix some functionality by @tannergooding in #140
- Add a with-librarypath option and better handle anonymous names by default by @tannergooding in #141
- Updating the binding generator with additional functionality by @tannergooding in #142
- Support implicit VTBLs and generating basic interop tests by @tannergooding in #143
- Adding an explicit test covering structs that contain pointers to the same type by @tannergooding in #147
- Improving handling of bitfields by @tannergooding in #152
- Ensure bitfields are still correctly handled if there is only one by @tannergooding in #156
- Add additional native library lookup logic for Linux. See #153 by @jmaine in #154
- Extended the support for ClangSharp via libClangSharp by @tannergooding in #159
- Improve the handling of various declaration types and add support for generating macro bindings by @tannergooding in #160
- Massively improve the perf of MacroDefinitionRecord handling by @tannergooding in #161
- Update libClangSharp to 10.0.2-beta and improve some codegen handling by @tannergooding in #162
- Improve the generated code for a number of scenarios by @tannergooding in #163
- Expose the unsigned value on EnumConstantDecl. by @PathogenDavid in #164
- Further improve codegen around UUID attributes and parentheses handling by @tannergooding in #165
- Fix a few code generation bugs around fixed sized buffers and nested anonymous records by @tannergooding in #166
- Add exclusion support for helper methods and support for AggressiveInlining by @tannergooding in #168
- Fix unchecked generation for pointers by @reflectronic in #169
- Don't include conflicting definitions when incrementing the vtbl index by @tannergooding in #170
- Fix struct parsing in C mode by @mjsabby in #172
- Updating to use the new fnptr syntax and fixing a couple minor issues by @tannergooding in #174
- Better handle anonymous enumerations by @tannergooding in #175
- Regenerating bindings for Clang 11.0.0 by @tannergooding in #181
- Check if CXXRecordDecl is lambda before calling getLambdaContextDecl(). by @phizch in #185
- Fix translation for constant string literals by @reflectronic in #189
- Fix translation for implicit move constructor invocation by @reflectronic in #188
- Adding new config options for ClangSharp by @sotteson1 in #187
- Fix remapping for union field names by @reflectronic in #191
- Add unchecked handling for reinterpret_cast by @reflectronic in #193
- Add support for templates in type signatures by @reflectronic in #192
- Add better support for function-like casts by @reflectronic in #196
- Insert cast to enum underlying type when casting to enum type in enum initializer by @reflectronic in #197
- Add a CI job for validating microsoft/win32metadata hasn't regressed by @tannergooding in #198
- Updating to support .NET 5 and to use Open.snk by @tannergooding in #202
- Updating to 11.0.0-beta2 by @tannergooding in #203
New Contributors
- @jmaine made their first contribution in #154
- @mjsabby made their first contribution in #172
- @phizch made their first contribution in #185
- @sotteson1 made their first contribution in #187
Full Changelog: v10.0.0-beta...v11.0.0-beta1
v10.0.0-beta
What's Changed
- Update to Clang 10.0.0 by @tannergooding in #121
- Adding a DllImport resolver for netcoreapp3.1 by @tannergooding in #122
- Adds a 'preview-codegen' config option by @tannergooding in #123
- Ensuring typedefs to all kinds of arrays work as expected by @tannergooding in #124
Full Changelog: v9.0.0-beta...v10.0.0-beta
v9.0.0-beta
What's Changed
- Add Preprocessing Wrappers by @udaken in #84
- Updating the codebase to Clang v9.0.0 by @tannergooding in #86
- Removing Debugger.Break calls from the repository by @tannergooding in #89
- Adding a license header to all the code files by @tannergooding in #90
- Switching various LINQ expressions to use OfType instead of Where(x is T).Cast by @tannergooding in #91
- Ensure the various cursor kinds are being handled by @tannergooding in #92
- Adding DeclStmt.Decls by @udaken in #88
- Add Minimal Support for NamespaceAliasDecl and UsingDirectiveDecl. by @iosdevzone in #87
- Adding basic tests for ClassTemplateDecl and ClassTemplatePartialSpecializationDecl by @tannergooding in #93
- Updating CI to use the vmImage pool names by @tannergooding in #95
- Add a helper library, libClangSharp, for exposing functionality not in libClang by @tannergooding in #94
- Updating dependences to latest stable and cleanup solution file. by @tannergooding in #96
- Updating System.CommandLine.Experimental to 0.3.0-alpha.19405.1 by @tannergooding in #97
- Cleanup the PInvokeGenerator to follow some best practices and avoid platform differences. by @tannergooding in #98
- Changing the default to -std=c++17 and cleaning up the launchSettings.json by @tannergooding in #99
- Handle some more decl and stmt kinds in the PInvoke generator by @tannergooding in #100
- Updating ClangSharpPInvokeGenerator to pack as a global tool by @tannergooding in #101
- Take name remapping into account when tracking the native type name. by @tannergooding in #102
- Simplifying some of the command line options for ClangSharpPInvokeGenerator by @tannergooding in #103
- Adding an option to generate netfx compatible code by @tannergooding in #104
- Adding support for nested anonymous records by @tannergooding in #105
- Ensure that anonymous nested structs can have their field names remapped by @tannergooding in #106
- Adding explicit tests covering C style unions by @tannergooding in #107
- Updating the GetTypeName handling to better handle anonymous records and pointee types by @tannergooding in #108
- Adding support for generating bitfield bindings by @tannergooding in #109
- Add binding generation support for virtual instance methods by @tannergooding in #110
- Provide a mechanism for providing additional attributes and using directives for declarations by @tannergooding in #111
- Adding support for optional parameters, overriding the EnumDecl type, and overriding the CallingConv by @tannergooding in #112
- Fixing binding generation to support multidimensional arrays and conflicting names by @tannergooding in #113
- Adding support for binding the most common statement and expression kinds by @tannergooding in #114
- Support a few more statement and declaration types by @tannergooding in #115
- fix: Fix property name by @objectx in #116
New Contributors
- @udaken made their first contribution in #84
- @iosdevzone made their first contribution in #87
- @objectx made their first contribution in #116
Full Changelog: v8.0.0-beta...v9.0.0-beta