Yupei Qi
Yupei Qi
It's a bug. I just can't come up with an elegant way to fix it...
Julia 1.11 uses llvm16 and there are some breaking changes introduced in llvm16/clang16(see #465). As IPUToolkit.jl maintains its own C++ parsing script, we should upgrade the script to be compatible...
Those breaking changes are from clang internals. We(mainly contributed by @JamesWrigley) only write changelogs for Clang.jl. It may take a little longer to fix issues related to clang internal changes,...
You're right. It's safe until Julia v1.1 is released. But if you're only using Clang.jl for generating bindings, it should be ok to remove it as a dependency.
Could you share the C example code?
https://github.com/JuliaInterop/Clang.jl/blob/5a1cc29c154ed925f01e59dfd705cbf8042158e4/src/generator/passes.jl#L770-L791 This is the current rule which is used to workaround the following case: https://github.com/JuliaInterop/Clang.jl/blob/5a1cc29c154ed925f01e59dfd705cbf8042158e4/gen/generator.toml#L118-L125 You can add more reasonable rules to `should_tweak` or directly in the pass function.
> struct B > x::Ptr{B} > y::D > end wait. does it only happen to `StructMutualRef`?
https://github.com/JuliaInterop/Clang.jl/blob/5a1cc29c154ed925f01e59dfd705cbf8042158e4/src/generator/passes.jl#L819 ~~What happens if you remove `StructMutualRef` in this line?~~ This actually do check those `StructMutualRef` types..
I think we need to add new rules for non-function-proto types.
I guess only those binding library authors would star this project. Now the number just makes sense and cimplot has approximately 18 language bindings. 😉