JuliaInterop / Clang.jl

C binding generator and Julia interface to libclang
https://juliainterop.github.io/Clang.jl/
MIT License
219 stars 68 forks source link

Unknown CXCursorKind with Julia master/Clang.jl master #436

Closed pchintalapudi closed 1 year ago

pchintalapudi commented 1 year ago

While running the generator script for LLVMExtra, I run into an unknown CXCursorKind while parsing essentially any header file. The initial error shows up in detect_headers, but skipping the detect_headers function results in running into the error later.

Reproducer 1. `]dev LLVM` 2. `cd ~/.julia/dev/LLVM` 3. julia --project=res res/wrap_llvmextra.jl
Error: ``` ERROR: LoadError: KeyError: key Clang.LibClang.UnknownMember not found Stacktrace: [1] getindex(h::Dict{Any, Any}, key::Clang.LibClang.CXCursorKind) @ Base ./dict.jl:496 [inlined] [2] Clang.CLCursor(c::Clang.LibClang.CXCursor) @ Clang ~/.julia/dev/Clang/src/cltypes.jl:35 [3] convert(::Type{Clang.CLCursor}, x::Clang.LibClang.CXCursor) @ Clang ~/.julia/dev/Clang/src/cltypes.jl:37 [inlined] [4] getTranslationUnitCursor(tu::Clang.TranslationUnit) @ Clang ~/.julia/dev/Clang/src/trans_unit.jl:72 [inlined] [5] detect_headers(include_dir::String, args::Vector{String}, options::Dict{Any, Any}, filter_op::Clang.Generators.var"#161#165") @ Clang.Generators ~/.julia/dev/Clang/src/generator/context.jl:274 [6] detect_headers(include_dir::Any, args::Any, options::Dict, filter_op::Any) (repeats 2 times) @ Clang.Generators ~/.julia/dev/Clang/src/generator/context.jl:252 [inlined] [7] main() @ Main ~/.julia/dev/LLVM/res/wrap_llvmextra.jl:26 [8] top-level scope @ ~/.julia/dev/LLVM/res/wrap_llvmextra.jl:50 in expression starting at /home/premc/.julia/dev/LLVM/res/wrap_llvmextra.jl:50 ```
julia> versioninfo()
Julia Version 1.10.0-DEV.1465
Commit 0919cba143 (2023-06-09 20:30 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 128 × AMD EPYC 7502 32-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, znver2)
  Threads: 1 on 128 virtual cores
Gnimuc commented 1 year ago

What's the state of your res/Manifest.toml?

pchintalapudi commented 1 year ago
`Manifest.toml` ``` # This file is machine-generated - editing it directly is not advised [[ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" version = "1.1.1" [[Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" [[Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" [[CEnum]] git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90" uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" version = "0.4.2" [[Clang]] deps = ["CEnum", "Clang_jll", "Downloads", "Pkg", "TOML"] path = "/home/premc/.julia/dev/Clang" uuid = "40e3b903-d033-50b4-a0cc-940c62c95e31" version = "0.17.5" [[Clang_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "TOML", "Zlib_jll", "libLLVM_jll"] git-tree-sha1 = "4c6c08b9707a548bfb429640c6aec39d0d31a376" uuid = "0ee61d77-7f21-5576-8119-9fcc46b10100" version = "15.0.7+5" [[Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" [[Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" version = "1.6.0" [[FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" [[InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" [[JLLWrappers]] deps = ["Preferences"] git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" version = "1.4.1" [[LLVM_full_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] git-tree-sha1 = "6814272addbc1274c6660db924425494b6dd493f" uuid = "a3ccf953-465e-511d-b87f-60a6490c289d" version = "15.0.7+5" [[LibCURL]] deps = ["LibCURL_jll", "MozillaCACerts_jll"] uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" version = "0.6.4" [[LibCURL_jll]] deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" version = "8.0.1+0" [[LibGit2]] deps = ["Base64", "NetworkOptions", "Printf", "SHA"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" [[LibSSH2_jll]] deps = ["Artifacts", "Libdl", "MbedTLS_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" version = "1.10.2+0" [[Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" [[Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[Markdown]] deps = ["Base64"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" [[MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" version = "2.28.2+0" [[MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" version = "2023.1.10" [[NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" [[Pkg]] deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" version = "1.10.0" [[Preferences]] deps = ["TOML"] git-tree-sha1 = "7eb1686b4f04b82f96ed7a4ea5890a4f0c7a09f1" uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.4.0" [[Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" [[REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[Random]] deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [[SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" [[Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" [[Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" [[TOML]] deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" version = "1.0.3" [[Tar]] deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" version = "1.10.0" [[UUIDs]] deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" [[Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" [[Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" version = "1.2.13+0" [[libLLVM_jll]] deps = ["Artifacts", "Libdl"] uuid = "8f36deef-c2a5-5394-99ed-8e07531fb29a" version = "15.0.7+5" [[nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" version = "1.52.0+0" [[p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" version = "17.4.0+0" ```