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

Add missing unmanaged wrappers related to attributes #218

Merged
merged 2 commits into from
Aug 16, 2023

Conversation

mrahhal
Copy link
Contributor

@mrahhal mrahhal commented Aug 8, 2023

This adds some missing unmanaged wrappers for attributes. Will try and follow up with working on the managed wrappers.

Related to #217.

@mrahhal
Copy link
Contributor Author

mrahhal commented Aug 15, 2023

What's the status of this repo in terms of maintenance?
I'm finding a lot of missing apis (even unmanaged ones, not using the managed wrapper at all yet), in addition to the samples being extremely outdated.

Would like to know as I'm wondering if I should put in the work to contribute these and wait for PR reviews and merges, or just fork the project and do some ad-hoc patching instead to be honest so I can continue with what I'm doing.

@tannergooding
Copy link
Member

What's the status of this repo in terms of maintenance?

Sorry for the delay, I'm normally fairly pro-active on getting PRs reviewed/merged. But we're currently locking down the .NET 8 release (I'm on the .NET Libraries team) and so I've been a bit pre-occupied.

I should be able to get to this shortly.

I'm finding a lot of missing apis (even unmanaged ones, not using the managed wrapper at all yet), in addition to the samples being extremely outdated.

All unmanaged APIs should be exposed, they are generated directly from the header files. Do you have an example of an unmanaged API that is missing?

Higher level abstractions (that is the safe wrappers exposed as instance methods or the OOP surface that more closely mirrors LLVM C++ API) may not all be there yet and are a WIP.

@mrahhal
Copy link
Contributor Author

mrahhal commented Aug 16, 2023

Thanks for replying! And very understood.

All unmanaged APIs should be exposed, they are generated directly from the header files. Do you have an example of an unmanaged API that is missing?

I wasn't clear enough, I meant in the unmanaged *Ref structs. (which this PR applies to)
Yes the bindings themselves are all there as far as I can tell. I am able to at least use the bindings directly, but mentioned this since even without the managed wrappers, the *Ref structs are still much less awkward to work with than the bindings.

I did a skim of the managed wrappers, and indeed only the very beginning is there. I have some code in progress relating to these as well that I'll try and send patches for later if that's ok. (I can see there are some work done in managed wrappers, but even the central wrappers such as Module/Context are missing lots of important parts too)

@tannergooding
Copy link
Member

I wasn't clear enough, I meant in the unmanaged *Ref structs. (which this PR applies to)

Ah, I see. Yes, these are still lacking.

ClangSharp has "everything" here and is basically where I want to get LLVMSharp. I just ended up being particularly busy in .NET 7/8 with Generic Math and then AVX-512 support being added and so haven't had nearly as much time as I've desired to finish the support out.

I have some code in progress relating to these as well that I'll try and send patches for later if that's ok.

Sounds great to me. Contributions are more than welcome and will help get the repo to where we want it to be 😄

@tannergooding tannergooding merged commit 482af28 into dotnet:main Aug 16, 2023
15 checks passed
@mrahhal mrahhal deleted the add-param-attr branch August 16, 2023 20:36
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