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

Unexpected assertion error: ERROR: AssertionError: length(child_nodes) == length(fields) #429

Closed Roger-luo closed 4 months ago

Roger-luo commented 1 year ago

Trying to create a wrapper of CPython using the following scripts, am I doing something wrong?

scripts ```toml # wrap.toml [general] library_name = "libpython[]" output_file_path = "../lib/libPython_h.jl" use_julia_native_enum_type = false use_deterministic_symbol = true printer_blacklist = [] [codegen] use_julia_bool = true always_NUL_terminated_string = true is_function_strictly_typed = false opaque_func_arg_as_PtrCvoid = false opaque_as_mutable_struct = true [codegen.macro] macro_mode = "basic" add_comment_for_skipped_macro = false ``` ```julia # wrap.jl # generate LLVM wrappers using Python_jll using Clang.Generators cd(@__DIR__) # @add_def off_t function main() options = load_options(joinpath(@__DIR__, "wrap.toml")) includedir = includedir = Python_jll.python() do exe script = "from sysconfig import get_paths as gp; print(gp()['include'])" readchomp(`$exe -c $script`) end args = get_default_args("aarch64-apple-darwin20") push!(args, "-I$includedir") header_files = detect_headers(includedir, args) internal_dir = joinpath(includedir, "internal") cpython_dir = joinpath(includedir, "cpython") filter!(!startswith(internal_dir), header_files) filter!(!startswith(cpython_dir), header_files) ctx = create_context(header_files, args, options) build!(ctx) end isinteractive() || main() ```
error message ```julia julia> main() [ Info: Found dependent header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/interpreteridobject.h [ Info: Found dependent header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyframe.h [ Info: Found dependent header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h [ Info: Parsing headers... /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/structmember.h:21:5: error: unknown type name 'Py_ssize_t' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/structmember.h:68:12: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/structmember.h:68:24: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/structmember.h:69:17: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:18:11: error: unknown type name 'XML_LChar' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:18:43: warning: declaration of 'enum XML_Error' will not be visible outside of this function [-Wvisibility] /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:19:36: error: unknown type name 'XML_Parser' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:20:5: error: type name requires a specifier or qualifier /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:20:16: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:20:38: error: unknown type name 'XML_Parser' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:21:5: error: type name requires a specifier or qualifier /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:21:16: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:21:36: error: unknown type name 'XML_Parser' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:21:5: error: duplicate member 'XML_Size' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:20:5: note: previous declaration is here /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:23:9: error: unknown type name 'XML_Parser' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:24:5: error: type name requires a specifier or qualifier /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:24:18: warning: type specifier missing, defaults to 'int' [-Wimplicit-int] /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:25:15: error: unknown type name 'XML_Char' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:25:41: error: unknown type name 'XML_Memory_Handling_Suite' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:26:15: error: unknown type name 'XML_Char' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:27:24: error: unknown type name 'XML_Parser' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:29:9: error: unknown type name 'XML_Parser' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:29:28: error: unknown type name 'XML_CharacterDataHandler' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:31:9: error: unknown type name 'XML_Parser' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:31:28: error: unknown type name 'XML_CommentHandler' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:33:9: error: unknown type name 'XML_Parser' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:33:28: error: unknown type name 'XML_DefaultHandler' fatal error: too many errors emitted, stopping now [-ferror-limit=] /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/marshal.h:12:18: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/marshal.h:13:18: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/marshal.h:14:12: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/marshal.h:14:24: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/marshal.h:17:18: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/marshal.h:18:17: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/marshal.h:19:12: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/marshal.h:19:24: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/marshal.h:20:12: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/marshal.h:20:24: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/marshal.h:22:12: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/marshal.h:22:24: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pydtrace.h:32:37: error: unknown type name 'Py_ssize_t' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pystrhex.h:10:12: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pystrhex.h:10:23: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pystrhex.h:12:12: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pystrhex.h:12:23: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pystrhex.h:14:12: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pystrhex.h:14:23: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pystrhex.h:15:12: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pystrhex.h:15:23: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/token.h:88:32: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/token.h:89:17: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/token.h:90:17: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/token.h:91:17: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/interpreteridobject.h:7:26: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/interpreteridobject.h:9:12: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/interpreteridobject.h:9:24: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/interpreteridobject.h:10:12: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/interpreteridobject.h:10:24: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/interpreteridobject.h:11:12: error: unknown type name 'PyInterpreterState' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/interpreteridobject.h:11:34: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:36:5: error: unknown type name 'PyObject_HEAD' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:37:14: error: expected ';' at end of declaration list /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:45:5: error: unknown type name 'PyObject_HEAD' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:46:1: error: expected member name or ';' after declaration specifiers /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:45:18: warning: expected ';' at end of declaration list /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:63:5: error: unknown type name 'PyObject_HEAD' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:63:5: error: expected ';' at end of declaration list /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:78:5: error: unknown type name 'PyObject_HEAD' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:78:5: error: expected ';' at end of declaration list /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:83:5: error: unknown type name 'PyObject_HEAD' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:83:5: error: expected ';' at end of declaration list /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:85:5: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:96:5: error: unknown type name 'PyObject_HEAD' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:96:5: error: expected ';' at end of declaration list /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:106:5: error: unknown type name 'PyObject_HEAD' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:106:5: error: expected ';' at end of declaration list /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:111:5: error: unknown type name 'PyObject_HEAD' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:111:5: error: expected ';' at end of declaration list /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:113:5: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h:160:5: error: unknown type name 'PyTypeObject' fatal error: too many errors emitted, stopping now [-ferror-limit=] /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/py_curses.h:62:5: error: unknown type name 'PyObject_HEAD' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/py_curses.h:63:11: error: expected ';' at end of declaration list /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyframe.h:15:17: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyframe.h:17:12: error: unknown type name 'PyCodeObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyframe.h:17:28: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:29:5: error: unknown type name 'PyObject_VAR_HEAD' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:31:5: error: unknown type name 'PyCodeObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:32:5: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:33:5: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:34:5: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:35:5: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:36:5: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:42:5: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:48:29: error: use of undeclared identifier 'CO_MAXBLOCKS' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:49:5: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:66:26: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:70:29: error: expected function body after function declarator /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:75:22: error: unknown type name 'PyThreadState' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:75:39: error: unknown type name 'PyFrameConstructor' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:75:61: error: unknown type name 'PyObject' /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/cpython/frameobject.h:82:18: error: expected function body after function declarator fatal error: too many errors emitted, stopping now [-ferror-limit=] [ Info: Processing header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/opcode.h [ Info: Processing header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/errcode.h [ Info: Processing header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/structmember.h [ Info: Processing header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/osdefs.h [ Info: Processing header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h [ Info: Processing header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/marshal.h [ Info: Processing header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pydtrace.h [ Info: Processing header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pystrhex.h [ Info: Processing header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/token.h [ Info: Processing header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/interpreteridobject.h [ Info: Processing header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/datetime.h [ Info: Processing header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/py_curses.h [ Info: Processing header: /Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/frameobject.h [ Info: Building the DAG... [ Info: Emit Julia expressions... [ Info: [ProloguePrinter]: print to ../lib/libPython_h.jl [ Info: [GeneralPrinter]: print to ../lib/libPython_h.jl ERROR: AssertionError: length(child_nodes) == length(fields) Stacktrace: [1] pretty_print(io::IOStream, node::ExprNode{Clang.Generators.StructDefinition, Clang.CLStructDecl}, options::Dict{String, Any}) @ Clang.Generators ~/.julia/packages/Clang/XH4D4/src/generator/print.jl:119 [2] (::Clang.Generators.var"#140#141"{ExprDAG, Dict{String, Any}, Nothing, Vector{Union{}}, Dict{String, Any}})(io::IOStream) @ Clang.Generators ~/.julia/packages/Clang/XH4D4/src/generator/passes.jl:1005 [3] open(::Clang.Generators.var"#140#141"{ExprDAG, Dict{String, Any}, Nothing, Vector{Union{}}, Dict{String, Any}}, ::String, ::Vararg{String}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Base ./io.jl:395 [4] open(::Function, ::String, ::String) @ Base ./io.jl:392 [5] (::GeneralPrinter)(dag::ExprDAG, options::Dict{String, Any}) @ Clang.Generators ~/.julia/packages/Clang/XH4D4/src/generator/passes.jl:1001 [6] build!(ctx::Context, stage::Clang.Generators.BuildStage) @ Clang.Generators ~/.julia/packages/Clang/XH4D4/src/generator/context.jl:174 [7] build! @ ~/.julia/packages/Clang/XH4D4/src/generator/context.jl:165 [inlined] [8] main() @ Main ~/Code/Julia/CPython/scripts/wrap.jl:28 [9] top-level scope @ REPL[6]:1 ```
Gnimuc commented 1 year ago
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/structmember.h:21:5: error: unknown type name 'Py_ssize_t'
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/structmember.h:68:12: error: unknown type name 'PyObject'
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/structmember.h:68:24: error: expected function body after function declarator
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/structmember.h:69:17: error: expected function body after function declarator
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:18:11: error: unknown type name 'XML_LChar'
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:18:43: warning: declaration of 'enum XML_Error' will not be visible outside of this function [-Wvisibility]
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:19:36: error: unknown type name 'XML_Parser'
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:20:5: error: type name requires a specifier or qualifier
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:20:16: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:20:38: error: unknown type name 'XML_Parser'
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:21:5: error: type name requires a specifier or qualifier
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:21:16: warning: type specifier missing, defaults to 'int' [-Wimplicit-int]
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:21:36: error: unknown type name 'XML_Parser'
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:21:5: error: duplicate member 'XML_Size'
/Users/roger/.julia/artifacts/4248444c3436ef904ef31e520c95af03a48ba253/include/python3.10/pyexpat.h:20:5: note: previous declaration is here

You need to fix these compiling errors first. args should contain all compiler flags required by compiling CPython's public header files.

header_files = detect_headers(includedir, args)

If you know which header you'd like to wrap, you should directly use that header name. detect_headers detects all top-level headers(headers that are not included/referenced in other headers) which may contain certain header files that are actually not public headers of CPython.