Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stdlib.CSharp.cs: remove buggy typemap #1812

Merged
merged 1 commit into from
Dec 17, 2023

Conversation

deadlocklogic
Copy link
Contributor

Closes #1810

@deadlocklogic
Copy link
Contributor Author

deadlocklogic commented Dec 16, 2023

@tritao I can push the regenerated bindings too if you want.
Adding more tests for containers is necessary too.
I noticed that the C# backend never uses System.Collections.Generic anyway, or am I missing something?
We can add an option in the C# generator: dotnet version.
I was planning to improve options for each generator, but I am still not decided on the best option as generators are lazy initialized in the Driver. Do we need to provide a generator option with the driver or should we implement a Configure() method in the ILibrary where we can configure the generator once intialized?

@deadlocklogic
Copy link
Contributor Author

@tritao going forward, we should be very careful about changes which might break other backends unintentionally. Like in #1783 changes were made to improve the C# backend, not taking into consideration other backends. Because CheckIgnoreMethod in src/Generator/AST/Utils.cs is a shared method across backends.
So extra measures to isolate the generators logic to the maximum should be taken, a simple/trivial backend-specific change can easily modify the behavior of other generators undesirably.

@tritao
Copy link
Collaborator

tritao commented Dec 17, 2023

@tritao I can push the regenerated bindings too if you want. Adding more tests for containers is necessary too. I noticed that the C# backend never uses System.Collections.Generic anyway, or am I missing something?

Isn't it used in this type map? Can you explain the rationale for removing this type map? Won't it break std::map for C#?

We can add an option in the C# generator: dotnet version.

Why do we need the dotnet version? Isn't the issue we have right now with the C# language version, which is an independent concept?

I was planning to improve options for each generator, but I am still not decided on the best option as generators are lazy initialized in the Driver. Do we need to provide a generator option with the driver or should we implement a Configure() method in the ILibrary where we can configure the generator once intialized?

Not sure, what do you think is best?

@deadlocklogic
Copy link
Contributor Author

deadlocklogic commented Dec 17, 2023

Isn't it used in this type map? Can you explain the rationale for removing this type map? Won't it break std::map for C#?

This is the root of this typemap.

    [TypeMap("std::map", GeneratorKindID = GeneratorKind.CLI_ID)]
    public partial class Map : TypeMap
    {
        public override bool IsIgnored { get { return true; } }

        public override Type CLISignatureType(TypePrinterContext ctx)
        {
            var type = Type as TemplateSpecializationType;
            return new CustomType(
                $@"::System::Collections::Generic::Dictionary<{
                    type.Arguments[0].Type}, {type.Arguments[1].Type}>^");
        }

        public override void CLIMarshalToNative(MarshalContext ctx)
        {
            throw new System.NotImplementedException();
        }

        public override void CLIMarshalToManaged(MarshalContext ctx)
        {
            throw new System.NotImplementedException();
        }

        public override Type CSharpSignatureType(TypePrinterContext ctx)
        {
            if (ctx.Kind == TypePrinterContextKind.Native)
                return new CustomType("Std.Map");

            var type = Type as TemplateSpecializationType;
            return new CustomType(
                $@"System.Collections.Generic.Dictionary<{
                    type.Arguments[0].Type}, {type.Arguments[1].Type}>");
        }
    }

Let's check an std::map bound instance: in CppParser\Bindings\CSharp\x86_64-pc-win32-msvc\CppSharp.CppParser.cs:
Bound field: Decl.h: DeclarationContext=>std::map<std::string, Declaration *> anonymous;

namespace Std
{
    namespace Map
    {
        [StructLayout(LayoutKind.Sequential, Size = 16, Pack = 8)]
        public unsafe partial struct __Internalc__N_std_S_map____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S_less__S0____N_std_S_allocator____N_std_S_pair__1S0__S3_
        {
            internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_less____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S__Compressed_pair____N_std_S_allocator____N_std_S__Tree_node____N_std_S_pair__1S1_____N_CppSharp_N_CppParser_N_AST_S_Declaration__v___N_std_S__Tree_val____N_std_S__Tree_simple_types__S7__Vb1_Vb1 _Mypair;
        }
    }
}
internal global::Std.Map.__Internalc__N_std_S_map____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C____N_CppSharp_N_CppParser_N_AST_S_Declaration___N_std_S_less__S0____N_std_S_allocator____N_std_S_pair__1S0__S3_ anonymous;

So this typemap had no effect.
Does it have effect on parameter thought, I am not 100% sure because there are no tests there? (But notice the CLI typemaps throw new System.NotImplementedException();)
If you want to be as safe as possible:

  1. merge Revert "Typemap cleanup" #1810 which will revert Typemap cleanup #1802
  2. write extensive tests for containers
  3. I will rework the PR

Whenever I finish my milestones with higher priority, I can work exclusively on:

  1. improving the tests
  2. improving the CLI/C# backend overall (writing docs/pseudocode etc...)
  3. upgrade typemaps functionality to match al least SWIG level

@deadlocklogic
Copy link
Contributor Author

Why do we need the dotnet version? Isn't the issue we have right now with the C# language version, which is an independent concept?

Sorry if I mixed up the matters: I meant adding option for C# version because #1783 introduced C# 10.0 requirements.

Not sure, what do you think is best?

I will work out an elegant solution for sure.

@deadlocklogic
Copy link
Contributor Author

@tritao I will add tests for std::map and even std::list myself and see what goes on. Lets wait and check for ourselves.

@tritao
Copy link
Collaborator

tritao commented Dec 17, 2023

Ok, I think I understand now. This type map is probably some old attempt to implement map, and thus should be removed because its buggy.

@tritao tritao merged commit 24d1a84 into mono:main Dec 17, 2023
5 checks passed
@deadlocklogic
Copy link
Contributor Author

I am adding tests anyway 😂

JordanL8 added a commit to MoonCollider/CppSharp that referenced this pull request Feb 1, 2024
commit b5ab95e
Author: Joao Matos <[email protected]>
Date:   Thu Feb 1 11:39:24 2024 +0000

    Update iOS64 ABI name to the more accurate AppleARM64.

commit d1307a5
Author: Joao Matos <[email protected]>
Date:   Thu Feb 1 11:21:52 2024 +0000

    Add support for AArch64 C++ ABI.

commit 9071cd2
Author: deadlocklogic <[email protected]>
Date:   Sun Dec 17 17:03:24 2023 +0200

    Implement ClassTemplatePartialSpecialization::Parameters (mono#1809)

    * Implement ClassTemplatePartialSpecialization::Parameters

    * Template.cs: Implement ClassTemplatePartialSpecialization.Parameters

    * GeneratorKind: fix bug introduced while migrating from enum to class

    * Implement native ClassTemplatePartialSpecialization.Parameters + ASTConverter

    * regenerated bindings (mono#1813)

    * regenerated bindings

    * regenerated bindings after rebase

    * Directory.Build.props: support C# 10.0

    * Implement native ClassTemplatePartialSpecialization.Parameters + ASTConverter

    * Regenerated bindings

    * TestAST.cs: add TestASTClassTemplatePartialSpecialization

commit 2ecd952
Author: deadlocklogic <[email protected]>
Date:   Sun Dec 17 13:08:34 2023 +0200

    regenerated bindings (mono#1813)

    * regenerated bindings

    * regenerated bindings after rebase

    * Directory.Build.props: support C# 10.0

commit 24d1a84
Author: deadlocklogic <[email protected]>
Date:   Sun Dec 17 11:44:00 2023 +0200

    Stdlib.CSharp.cs: remove buggy typemap (mono#1812)

commit 1327971
Author: deadlocklogic <[email protected]>
Date:   Sat Dec 16 21:36:04 2023 +0200

    GeneratorKind: patch bug caused by missing ToString (mono#1811)

commit 519e97f
Author: Joao Matos <[email protected]>
Date:   Tue Dec 12 15:30:14 2023 +0000

    Remove 32-bit builds and non-debug symbols release builds from LLVM Windows CI.

commit 1211272
Author: deadlocklogic <[email protected]>
Date:   Tue Dec 12 17:25:12 2023 +0200

    Build llvm `Debug`/`Release` for `Windows`. (mono#1800)

    * Update llvm-win.yml

    * Update llvm-win.yml

    * Update llvm-win.yml

commit 12c267d
Author: zylalx1 <[email protected]>
Date:   Fri Dec 8 03:58:10 2023 +0800

    Fixed a bug causing the header file to be included twice when Options.GenerateName is not null (mono#1803)

commit e068f2a
Author: deadlocklogic <[email protected]>
Date:   Thu Dec 7 16:35:02 2023 +0200

    Typemap cleanup (mono#1802)

    * TypeMap: prepare refactoring into a modular design

    * TypeMap: refactor C++ backend into common methods

    * TypeMap: refactor CLI backend into common methods

    * CLI.Gen.cs: fix omitted typemap from previous commit

    * Common.Gen.cs: fixed silly modification while testing

    * GeneratorKind: add FindGeneratorKindByID method

    * TypeMapDatabase: heavy refactor: group typemaps by GeneratorKind

    * TypeMap: refactor CSharp backend into common methods + migration

    * TypeMap: cleanup patches from previous commits

    * TypeMapDatabase: fix passing GeneratorKind to FindTypeMap calls

    * Stdlib.CSharp.cs: move std::map typemap from Stdlib.CLI.cs

    * TypeMapDatabase: improve parameter name

commit 8c2da6d
Author: deadlocklogic <[email protected]>
Date:   Mon Nov 13 22:00:41 2023 +0200

    Major refactor: TypePrinter: improve modular design + cleanup (mono#1796)

commit 0edd48c
Author: deadlocklogic <[email protected]>
Date:   Mon Nov 13 20:15:24 2023 +0200

    Major refactoring: refactor GeneratorKind enum into a class (mono#1794)

    * Major refactoring: refactor GeneratorKind enum into a class

    * Minor fix: add readonly

    * Add Type property for GenerationKind + cleanup

    * GeneratorKind: add Name property + refactor hardcoded names

    * GeneratorKind: add CLIOptions property + refactor hardcoded options

    * CppSharp.CLI: minor fix: use generator.ToLower()

    * GeneratorKind: fix warning

commit 40f3a09
Author: deadlocklogic <[email protected]>
Date:   Sat Nov 11 16:51:18 2023 +0200

    Minor improvements (mono#1793)

    * CppSharp.Generators.Options: added pre/post TranslationUnitPass callback

    * CppSharp.Generators.Passes.Pass: added TranslationUnitPassGeneratorDependent

commit b14038a
Author: Stefan <[email protected]>
Date:   Mon Oct 23 14:23:51 2023 +0200

    Value types may generate `Dispose` (mono#1787)

commit 3b2a15d
Author: João Matos <[email protected]>
Date:   Sat Oct 21 19:33:13 2023 +0100

    Update README.md

commit a5afda8
Author: Stefan <[email protected]>
Date:   Fri Oct 20 21:00:04 2023 +0200

    Fix parameterless constructors not being generated for structs (mono#1783)

    * Fix parameterless constructors not being generated for structs

    * Fix implicit non-trivial default ctor

    * Adjust `Ignore` linked issue

commit b16e809
Author: Stefan <[email protected]>
Date:   Fri Oct 20 18:54:58 2023 +0200

    Introduce `GenerateFreeStandingFunctionsClassName` option (mono#1782)

    * Introduce `GenerateFreeStandingFunctionsClassName` option

    * Support CLI and fixes

commit 03874e7
Author: Stefan <[email protected]>
Date:   Thu Oct 19 17:24:55 2023 +0200

    Fix Value Type String Member Invalid Codegen (mono#1778)

    * Fix code generation

    * Generate exception on broken struct set op

    * Remove redundant usings

commit adffc99
Author: Salvage <[email protected]>
Date:   Thu Oct 19 14:51:06 2023 +0200

    Fix erroneous newline

commit b4f261e
Author: Salvage <[email protected]>
Date:   Thu Oct 19 14:26:00 2023 +0200

    Simplify `IsTemplateParameterType`

commit 28000a1
Author: Salvage <[email protected]>
Date:   Thu Oct 19 01:19:07 2023 +0200

    Fix mono#1251 three parameter equality operator

    - Operators in generic classes do not attempt to generate as extension methods anymore
    - Empty `...Extensions` classes are no longer generated
    - `string` as a template argument is correctly cast
    - `MarshalCharAsManagedChar` option also generates correct casts
    - Suppress warning regarding returning struct field by ref
    - Eliminate some tabs that snuck into the test C++ header

commit d7faf5f
Author: Joao Matos <[email protected]>
Date:   Wed Oct 18 17:39:49 2023 +0100

    Fix SDL_PollEvent generation in the SDL example.

    Fixes mono#978.

    Thanks to @Saalvage.

commit 7f567b6
Author: Salvage <[email protected]>
Date:   Wed Oct 18 18:26:03 2023 +0200

    Fix non-void returning functions with value-type out parameters

    Also fixes indentation

commit 0c60384
Author: Salvage <[email protected]>
Date:   Wed Oct 18 16:49:41 2023 +0200

    Additional bump

commit 0534e33
Author: Salvage <[email protected]>
Date:   Wed Oct 18 16:35:10 2023 +0200

    Bump GH actions versions to solve warnings

commit a6ef9d9
Author: Salvage <[email protected]>
Date:   Wed Oct 18 16:19:42 2023 +0200

    Fix source dir

commit 7e6c492
Author: Salvage <[email protected]>
Date:   Wed Oct 18 16:08:51 2023 +0200

    Test fix broken packages

commit 2a351b7
Author: Joao Matos <[email protected]>
Date:   Wed Oct 18 16:03:36 2023 +0100

    Update our version to 1.1.

commit 20950c5
Author: Salvage <[email protected]>
Date:   Wed Oct 18 04:58:38 2023 +0200

    More stringent test; Fix indentation (of the code itself, not in the generator)

commit ebe6b8a
Author: Salvage <[email protected]>
Date:   Wed Oct 18 04:47:13 2023 +0200

    Fix value type out parameters
JordanL8 added a commit to MoonCollider/CppSharp that referenced this pull request Feb 5, 2024
commit 1d1b21f
Author: Conrad Kreyling <[email protected]>
Date:   Fri Feb 2 15:12:42 2024 -0500

    Instruct generator to build ARM64 bindings

commit 491248b
Author: Conrad Kreyling <[email protected]>
Date:   Fri Feb 2 15:09:44 2024 -0500

    Fix missing AArch64 entry in CLI CppAbi

commit bbb0693
Author: Conrad Kreyling <[email protected]>
Date:   Fri Feb 2 13:35:11 2024 -0500

    Enable ARM64 support on LLVM builds

commit b5ab95e
Author: Joao Matos <[email protected]>
Date:   Thu Feb 1 11:39:24 2024 +0000

    Update iOS64 ABI name to the more accurate AppleARM64.

commit d1307a5
Author: Joao Matos <[email protected]>
Date:   Thu Feb 1 11:21:52 2024 +0000

    Add support for AArch64 C++ ABI.

commit 9071cd2
Author: deadlocklogic <[email protected]>
Date:   Sun Dec 17 17:03:24 2023 +0200

    Implement ClassTemplatePartialSpecialization::Parameters (mono#1809)

    * Implement ClassTemplatePartialSpecialization::Parameters

    * Template.cs: Implement ClassTemplatePartialSpecialization.Parameters

    * GeneratorKind: fix bug introduced while migrating from enum to class

    * Implement native ClassTemplatePartialSpecialization.Parameters + ASTConverter

    * regenerated bindings (mono#1813)

    * regenerated bindings

    * regenerated bindings after rebase

    * Directory.Build.props: support C# 10.0

    * Implement native ClassTemplatePartialSpecialization.Parameters + ASTConverter

    * Regenerated bindings

    * TestAST.cs: add TestASTClassTemplatePartialSpecialization

commit 2ecd952
Author: deadlocklogic <[email protected]>
Date:   Sun Dec 17 13:08:34 2023 +0200

    regenerated bindings (mono#1813)

    * regenerated bindings

    * regenerated bindings after rebase

    * Directory.Build.props: support C# 10.0

commit 24d1a84
Author: deadlocklogic <[email protected]>
Date:   Sun Dec 17 11:44:00 2023 +0200

    Stdlib.CSharp.cs: remove buggy typemap (mono#1812)

commit 1327971
Author: deadlocklogic <[email protected]>
Date:   Sat Dec 16 21:36:04 2023 +0200

    GeneratorKind: patch bug caused by missing ToString (mono#1811)

commit 519e97f
Author: Joao Matos <[email protected]>
Date:   Tue Dec 12 15:30:14 2023 +0000

    Remove 32-bit builds and non-debug symbols release builds from LLVM Windows CI.

commit 1211272
Author: deadlocklogic <[email protected]>
Date:   Tue Dec 12 17:25:12 2023 +0200

    Build llvm `Debug`/`Release` for `Windows`. (mono#1800)

    * Update llvm-win.yml

    * Update llvm-win.yml

    * Update llvm-win.yml

commit 12c267d
Author: zylalx1 <[email protected]>
Date:   Fri Dec 8 03:58:10 2023 +0800

    Fixed a bug causing the header file to be included twice when Options.GenerateName is not null (mono#1803)

commit e068f2a
Author: deadlocklogic <[email protected]>
Date:   Thu Dec 7 16:35:02 2023 +0200

    Typemap cleanup (mono#1802)

    * TypeMap: prepare refactoring into a modular design

    * TypeMap: refactor C++ backend into common methods

    * TypeMap: refactor CLI backend into common methods

    * CLI.Gen.cs: fix omitted typemap from previous commit

    * Common.Gen.cs: fixed silly modification while testing

    * GeneratorKind: add FindGeneratorKindByID method

    * TypeMapDatabase: heavy refactor: group typemaps by GeneratorKind

    * TypeMap: refactor CSharp backend into common methods + migration

    * TypeMap: cleanup patches from previous commits

    * TypeMapDatabase: fix passing GeneratorKind to FindTypeMap calls

    * Stdlib.CSharp.cs: move std::map typemap from Stdlib.CLI.cs

    * TypeMapDatabase: improve parameter name

commit 8c2da6d
Author: deadlocklogic <[email protected]>
Date:   Mon Nov 13 22:00:41 2023 +0200

    Major refactor: TypePrinter: improve modular design + cleanup (mono#1796)

commit 0edd48c
Author: deadlocklogic <[email protected]>
Date:   Mon Nov 13 20:15:24 2023 +0200

    Major refactoring: refactor GeneratorKind enum into a class (mono#1794)

    * Major refactoring: refactor GeneratorKind enum into a class

    * Minor fix: add readonly

    * Add Type property for GenerationKind + cleanup

    * GeneratorKind: add Name property + refactor hardcoded names

    * GeneratorKind: add CLIOptions property + refactor hardcoded options

    * CppSharp.CLI: minor fix: use generator.ToLower()

    * GeneratorKind: fix warning

commit 40f3a09
Author: deadlocklogic <[email protected]>
Date:   Sat Nov 11 16:51:18 2023 +0200

    Minor improvements (mono#1793)

    * CppSharp.Generators.Options: added pre/post TranslationUnitPass callback

    * CppSharp.Generators.Passes.Pass: added TranslationUnitPassGeneratorDependent

commit b14038a
Author: Stefan <[email protected]>
Date:   Mon Oct 23 14:23:51 2023 +0200

    Value types may generate `Dispose` (mono#1787)

commit 3b2a15d
Author: João Matos <[email protected]>
Date:   Sat Oct 21 19:33:13 2023 +0100

    Update README.md

commit a5afda8
Author: Stefan <[email protected]>
Date:   Fri Oct 20 21:00:04 2023 +0200

    Fix parameterless constructors not being generated for structs (mono#1783)

    * Fix parameterless constructors not being generated for structs

    * Fix implicit non-trivial default ctor

    * Adjust `Ignore` linked issue

commit b16e809
Author: Stefan <[email protected]>
Date:   Fri Oct 20 18:54:58 2023 +0200

    Introduce `GenerateFreeStandingFunctionsClassName` option (mono#1782)

    * Introduce `GenerateFreeStandingFunctionsClassName` option

    * Support CLI and fixes

commit 03874e7
Author: Stefan <[email protected]>
Date:   Thu Oct 19 17:24:55 2023 +0200

    Fix Value Type String Member Invalid Codegen (mono#1778)

    * Fix code generation

    * Generate exception on broken struct set op

    * Remove redundant usings

commit adffc99
Author: Salvage <[email protected]>
Date:   Thu Oct 19 14:51:06 2023 +0200

    Fix erroneous newline

commit b4f261e
Author: Salvage <[email protected]>
Date:   Thu Oct 19 14:26:00 2023 +0200

    Simplify `IsTemplateParameterType`

commit 28000a1
Author: Salvage <[email protected]>
Date:   Thu Oct 19 01:19:07 2023 +0200

    Fix mono#1251 three parameter equality operator

    - Operators in generic classes do not attempt to generate as extension methods anymore
    - Empty `...Extensions` classes are no longer generated
    - `string` as a template argument is correctly cast
    - `MarshalCharAsManagedChar` option also generates correct casts
    - Suppress warning regarding returning struct field by ref
    - Eliminate some tabs that snuck into the test C++ header

commit d7faf5f
Author: Joao Matos <[email protected]>
Date:   Wed Oct 18 17:39:49 2023 +0100

    Fix SDL_PollEvent generation in the SDL example.

    Fixes mono#978.

    Thanks to @Saalvage.

commit 7f567b6
Author: Salvage <[email protected]>
Date:   Wed Oct 18 18:26:03 2023 +0200

    Fix non-void returning functions with value-type out parameters

    Also fixes indentation

commit 0c60384
Author: Salvage <[email protected]>
Date:   Wed Oct 18 16:49:41 2023 +0200

    Additional bump

commit 0534e33
Author: Salvage <[email protected]>
Date:   Wed Oct 18 16:35:10 2023 +0200

    Bump GH actions versions to solve warnings

commit a6ef9d9
Author: Salvage <[email protected]>
Date:   Wed Oct 18 16:19:42 2023 +0200

    Fix source dir

commit 7e6c492
Author: Salvage <[email protected]>
Date:   Wed Oct 18 16:08:51 2023 +0200

    Test fix broken packages

commit 2a351b7
Author: Joao Matos <[email protected]>
Date:   Wed Oct 18 16:03:36 2023 +0100

    Update our version to 1.1.

commit 20950c5
Author: Salvage <[email protected]>
Date:   Wed Oct 18 04:58:38 2023 +0200

    More stringent test; Fix indentation (of the code itself, not in the generator)

commit ebe6b8a
Author: Salvage <[email protected]>
Date:   Wed Oct 18 04:47:13 2023 +0200

    Fix value type out parameters
JordanL8 added a commit to MoonCollider/CppSharp that referenced this pull request Feb 7, 2024
commit 8bd3f45
Author: João Matos <[email protected]>
Date:   Tue Feb 6 18:30:12 2024 +0000

    Update llvm.yml to install AArch64 cross compilers

commit a81abd5
Author: Conrad Kreyling <[email protected]>
Date:   Tue Feb 6 11:29:07 2024 -0500

    LLVM crosscompile x64 for ARM64 (mono#1826)

    * LLVM crosscompile x64 for ARM64

    * Fix MacOS host platform test

    * Ensure options is persistent in cross compile paths

commit 1d1b21f
Author: Conrad Kreyling <[email protected]>
Date:   Fri Feb 2 15:12:42 2024 -0500

    Instruct generator to build ARM64 bindings

commit 491248b
Author: Conrad Kreyling <[email protected]>
Date:   Fri Feb 2 15:09:44 2024 -0500

    Fix missing AArch64 entry in CLI CppAbi

commit bbb0693
Author: Conrad Kreyling <[email protected]>
Date:   Fri Feb 2 13:35:11 2024 -0500

    Enable ARM64 support on LLVM builds

commit b5ab95e
Author: Joao Matos <[email protected]>
Date:   Thu Feb 1 11:39:24 2024 +0000

    Update iOS64 ABI name to the more accurate AppleARM64.

commit d1307a5
Author: Joao Matos <[email protected]>
Date:   Thu Feb 1 11:21:52 2024 +0000

    Add support for AArch64 C++ ABI.

commit 9071cd2
Author: deadlocklogic <[email protected]>
Date:   Sun Dec 17 17:03:24 2023 +0200

    Implement ClassTemplatePartialSpecialization::Parameters (mono#1809)

    * Implement ClassTemplatePartialSpecialization::Parameters

    * Template.cs: Implement ClassTemplatePartialSpecialization.Parameters

    * GeneratorKind: fix bug introduced while migrating from enum to class

    * Implement native ClassTemplatePartialSpecialization.Parameters + ASTConverter

    * regenerated bindings (mono#1813)

    * regenerated bindings

    * regenerated bindings after rebase

    * Directory.Build.props: support C# 10.0

    * Implement native ClassTemplatePartialSpecialization.Parameters + ASTConverter

    * Regenerated bindings

    * TestAST.cs: add TestASTClassTemplatePartialSpecialization

commit 2ecd952
Author: deadlocklogic <[email protected]>
Date:   Sun Dec 17 13:08:34 2023 +0200

    regenerated bindings (mono#1813)

    * regenerated bindings

    * regenerated bindings after rebase

    * Directory.Build.props: support C# 10.0

commit 24d1a84
Author: deadlocklogic <[email protected]>
Date:   Sun Dec 17 11:44:00 2023 +0200

    Stdlib.CSharp.cs: remove buggy typemap (mono#1812)

commit 1327971
Author: deadlocklogic <[email protected]>
Date:   Sat Dec 16 21:36:04 2023 +0200

    GeneratorKind: patch bug caused by missing ToString (mono#1811)

commit 519e97f
Author: Joao Matos <[email protected]>
Date:   Tue Dec 12 15:30:14 2023 +0000

    Remove 32-bit builds and non-debug symbols release builds from LLVM Windows CI.

commit 1211272
Author: deadlocklogic <[email protected]>
Date:   Tue Dec 12 17:25:12 2023 +0200

    Build llvm `Debug`/`Release` for `Windows`. (mono#1800)

    * Update llvm-win.yml

    * Update llvm-win.yml

    * Update llvm-win.yml

commit 12c267d
Author: zylalx1 <[email protected]>
Date:   Fri Dec 8 03:58:10 2023 +0800

    Fixed a bug causing the header file to be included twice when Options.GenerateName is not null (mono#1803)

commit e068f2a
Author: deadlocklogic <[email protected]>
Date:   Thu Dec 7 16:35:02 2023 +0200

    Typemap cleanup (mono#1802)

    * TypeMap: prepare refactoring into a modular design

    * TypeMap: refactor C++ backend into common methods

    * TypeMap: refactor CLI backend into common methods

    * CLI.Gen.cs: fix omitted typemap from previous commit

    * Common.Gen.cs: fixed silly modification while testing

    * GeneratorKind: add FindGeneratorKindByID method

    * TypeMapDatabase: heavy refactor: group typemaps by GeneratorKind

    * TypeMap: refactor CSharp backend into common methods + migration

    * TypeMap: cleanup patches from previous commits

    * TypeMapDatabase: fix passing GeneratorKind to FindTypeMap calls

    * Stdlib.CSharp.cs: move std::map typemap from Stdlib.CLI.cs

    * TypeMapDatabase: improve parameter name

commit 8c2da6d
Author: deadlocklogic <[email protected]>
Date:   Mon Nov 13 22:00:41 2023 +0200

    Major refactor: TypePrinter: improve modular design + cleanup (mono#1796)

commit 0edd48c
Author: deadlocklogic <[email protected]>
Date:   Mon Nov 13 20:15:24 2023 +0200

    Major refactoring: refactor GeneratorKind enum into a class (mono#1794)

    * Major refactoring: refactor GeneratorKind enum into a class

    * Minor fix: add readonly

    * Add Type property for GenerationKind + cleanup

    * GeneratorKind: add Name property + refactor hardcoded names

    * GeneratorKind: add CLIOptions property + refactor hardcoded options

    * CppSharp.CLI: minor fix: use generator.ToLower()

    * GeneratorKind: fix warning

commit 40f3a09
Author: deadlocklogic <[email protected]>
Date:   Sat Nov 11 16:51:18 2023 +0200

    Minor improvements (mono#1793)

    * CppSharp.Generators.Options: added pre/post TranslationUnitPass callback

    * CppSharp.Generators.Passes.Pass: added TranslationUnitPassGeneratorDependent

commit b14038a
Author: Stefan <[email protected]>
Date:   Mon Oct 23 14:23:51 2023 +0200

    Value types may generate `Dispose` (mono#1787)

commit 3b2a15d
Author: João Matos <[email protected]>
Date:   Sat Oct 21 19:33:13 2023 +0100

    Update README.md

commit a5afda8
Author: Stefan <[email protected]>
Date:   Fri Oct 20 21:00:04 2023 +0200

    Fix parameterless constructors not being generated for structs (mono#1783)

    * Fix parameterless constructors not being generated for structs

    * Fix implicit non-trivial default ctor

    * Adjust `Ignore` linked issue

commit b16e809
Author: Stefan <[email protected]>
Date:   Fri Oct 20 18:54:58 2023 +0200

    Introduce `GenerateFreeStandingFunctionsClassName` option (mono#1782)

    * Introduce `GenerateFreeStandingFunctionsClassName` option

    * Support CLI and fixes

commit 03874e7
Author: Stefan <[email protected]>
Date:   Thu Oct 19 17:24:55 2023 +0200

    Fix Value Type String Member Invalid Codegen (mono#1778)

    * Fix code generation

    * Generate exception on broken struct set op

    * Remove redundant usings

commit adffc99
Author: Salvage <[email protected]>
Date:   Thu Oct 19 14:51:06 2023 +0200

    Fix erroneous newline

commit b4f261e
Author: Salvage <[email protected]>
Date:   Thu Oct 19 14:26:00 2023 +0200

    Simplify `IsTemplateParameterType`

commit 28000a1
Author: Salvage <[email protected]>
Date:   Thu Oct 19 01:19:07 2023 +0200

    Fix mono#1251 three parameter equality operator

    - Operators in generic classes do not attempt to generate as extension methods anymore
    - Empty `...Extensions` classes are no longer generated
    - `string` as a template argument is correctly cast
    - `MarshalCharAsManagedChar` option also generates correct casts
    - Suppress warning regarding returning struct field by ref
    - Eliminate some tabs that snuck into the test C++ header

commit d7faf5f
Author: Joao Matos <[email protected]>
Date:   Wed Oct 18 17:39:49 2023 +0100

    Fix SDL_PollEvent generation in the SDL example.

    Fixes mono#978.

    Thanks to @Saalvage.

commit 7f567b6
Author: Salvage <[email protected]>
Date:   Wed Oct 18 18:26:03 2023 +0200

    Fix non-void returning functions with value-type out parameters

    Also fixes indentation

commit 0c60384
Author: Salvage <[email protected]>
Date:   Wed Oct 18 16:49:41 2023 +0200

    Additional bump

commit 0534e33
Author: Salvage <[email protected]>
Date:   Wed Oct 18 16:35:10 2023 +0200

    Bump GH actions versions to solve warnings

commit a6ef9d9
Author: Salvage <[email protected]>
Date:   Wed Oct 18 16:19:42 2023 +0200

    Fix source dir

commit 7e6c492
Author: Salvage <[email protected]>
Date:   Wed Oct 18 16:08:51 2023 +0200

    Test fix broken packages

commit 2a351b7
Author: Joao Matos <[email protected]>
Date:   Wed Oct 18 16:03:36 2023 +0100

    Update our version to 1.1.

commit 20950c5
Author: Salvage <[email protected]>
Date:   Wed Oct 18 04:58:38 2023 +0200

    More stringent test; Fix indentation (of the code itself, not in the generator)

commit ebe6b8a
Author: Salvage <[email protected]>
Date:   Wed Oct 18 04:47:13 2023 +0200

    Fix value type out parameters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants