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

Assert-error inside %json-type-to-cffi-type #364

Open
C-Entropy opened this issue Jul 15, 2023 · 1 comment
Open

Assert-error inside %json-type-to-cffi-type #364

C-Entropy opened this issue Jul 15, 2023 · 1 comment

Comments

@C-Entropy
Copy link

I'm trying to use cffi/c2ffi to generate wrap for vulkan_core.h
And run into error:

The assertion
(NOT #1=(ALEXANDRIA:STARTS-WITH #\: CFFI/C2FFI::TAG)) failed
with #1# = T.
   [Condition of type SIMPLE-ERROR]

Restarts:
 0: [CONTINUE] Retry assertion.
 1: [RETRY] Retry #<GENERATE-LISP-OP > on #<C2FFI-FILE "clkan" "vulkan-specs" "vulkan_core.h">.
 2: [ACCEPT] Continue, treating #<GENERATE-LISP-OP > on #<C2FFI-FILE "clkan" "vulkan-specs" "vulkan_core.h"> as having been successful.
 3: [RETRY] Retry ASDF operation.
 4: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the configuration.
 5: [ABORT] Give up on "clkan"
 --more--

Backtrace:
  0: (SB-KERNEL:ASSERT-ERROR (NOT (ALEXANDRIA:STARTS-WITH #\: CFFI/C2FFI::TAG)) 1 (ALEXANDRIA:STARTS-WITH #\: CFFI/C2FFI::TAG) T)
      Locals:
        ASSERTION = (NOT (ALEXANDRIA:STARTS-WITH #\: CFFI/C2FFI::TAG))
        REST = (1 (ALEXANDRIA:STARTS-WITH #\: CFFI/C2FFI::TAG) T)
  1: (CFFI/C2FFI::%JSON-TYPE-TO-CFFI-TYPE ((:TAG . ":bitfield") (:WIDTH . 1) (:TYPE (:TAG . "uint32_t"))))
      Locals:
        JSON-ENTRY = ((:TAG . ":bitfield") (:WIDTH . 1) (:TYPE (:TAG . "uint32_t")))
        TAG = ":bitfield"
  2: (CFFI/C2FFI::JSON-TYPE-TO-CFFI-TYPE ((:TAG . ":bitfield") (:WIDTH . 1) (:TYPE (:TAG . "uint32_t"))) (:STRUCT "StdVideoH264SpsVuiFlags" "aspect_ratio_info_present_flag"))
      Locals:
        CONTEXT = (:STRUCT "StdVideoH264SpsVuiFlags" "aspect_ratio_info_present_flag")
        CONTEXT? = T
        JSON-ENTRY = ((:TAG . ":bitfield") (:WIDTH . 1) (:TYPE (:TAG . "uint32_t")))
  3: (CFFI/C2FFI::%PROCESS-STRUCT-LIKE ((:TAG . "struct") (:NS . 0) (:NAME . "StdVideoH264SpsVuiFlags") (:ID . 0) (:LOCATION . "/usr/include/vk_video/vulkan_video_codec_h264std.h:178:16") (:BIT-SIZE . 32) ..
      Locals:
        ANON-BASE-NAME = #:ANON-STRUCT-
        FIELD-NAME = "aspect_ratio_info_present_flag"
        #:G45 = CFFI:DEFCSTRUCT
        JSON-ENTRY = ((:TAG . "struct") (:NS . 0) (:NAME . "StdVideoH264SpsVuiFlags") (:ID . 0) (:LOCATION . "/usr/include/vk_video/vulkan_video_codec_h264std.h:178:16") (:BIT-SIZE . 32) ...)
        JSON-ENTRY#1 = ((:TAG . "field") (:NAME . "aspect_ratio_info_present_flag") (:BIT-OFFSET . 0) (:BIT-SIZE . 32) (:BIT-ALIGNMENT . 32) (:TYPE (:TAG . ":bitfield") (:WIDTH . 1) (:TYPE (:TAG . "uint32_t"))))
        KIND = :STRUCT
        STRUCT-NAME = "StdVideoH264SpsVuiFlags"
        TYPE = ((:TAG . ":bitfield") (:WIDTH . 1) (:TYPE (:TAG . "uint32_t")))
  4: (CFFI/C2FFI::PROCESS-C2FFI-ENTRY ((:TAG . "struct") (:NS . 0) (:NAME . "StdVideoH264SpsVuiFlags") (:ID . 0) (:LOCATION . "/usr/include/vk_video/vulkan_video_codec_h264std.h:178:16") (:BIT-SIZE . 32) ...
  5: ((FLET "THUNK" :IN CFFI/C2FFI::PROCESS-C2FFI-SPEC-FILE))
  6: (SB-IMPL::%WITH-STANDARD-IO-SYNTAX #<FUNCTION (FLET "THUNK" :IN CFFI/C2FFI::PROCESS-C2FFI-SPEC-FILE) {7FAB0F50CB4B}>)
  7: (CFFI/C2FFI::PROCESS-C2FFI-SPEC-FILE #P"/home/nuil/.roswell/lisp/quicklisp/local-projects/clkan/vulkan-specs/vulkan_core.x86_64-pc-linux-gnu.spec" #:CLKAN.C2FFI :ALLOW-POINTER-TYPE-SIMPLIFICATION NIL ..
  8: (UIOP/STREAM:CALL-WITH-STAGING-PATHNAME #P"/home/nuil/.roswell/lisp/quicklisp/local-projects/clkan/vulkan-specs/vulkan_core.x86_64-pc-linux-gnu.lisp" #<FUNCTION (LAMBDA (CFFI/C2FFI::TMP-OUTPUT) :IN AS..
  9: ((SB-PCL::EMF ASDF/ACTION:PERFORM) #<unused argument> #<unused argument> #<CFFI/C2FFI::GENERATE-LISP-OP > #<CFFI/C2FFI:C2FFI-FILE "clkan" "vulkan-specs" "vulkan_core.h">)
 10: ((LAMBDA NIL :IN ASDF/ACTION:CALL-WHILE-VISITING-ACTION))
 11: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<CFFI/C2FFI::GENERATE-LISP-OP > #<CFFI/C2FFI:C2FFI-FILE "clkan" "vulkan-specs" "vulkan_core.h">) [fast-method]
 12: ((:METHOD ASDF/PLAN:PERFORM-PLAN (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {1005DB1343}>) [fast-method]
 13: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
 14: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) #<ASDF/PLAN:SEQUENTIAL-PLAN {1005DB1343}>) [fast-method]
 15: ((:METHOD ASDF/OPERATE:OPERATE (ASDF/OPERATION:OPERATION ASDF/COMPONENT:COMPONENT)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "clkan"> :PLAN-CLASS NIL :PLAN-OPTIONS NIL) [fast-method]
 16: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "clkan"> :VERBOSE NIL)
 17: ((LAMBDA NIL :IN ASDF/OPERATE:OPERATE))
 18: ((:METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) #<ASDF/LISP-ACTION:LOAD-OP > #<ASDF/SYSTEM:SYSTEM "clkan"> :VERBOSE NIL) [fast-method]
 19: ((SB-PCL::EMF ASDF/OPERATE:OPERATE) #<unused argument> #<unused argument> ASDF/LISP-ACTION:LOAD-OP "clkan" :VERBOSE NIL)
 --more--
; compilation unit aborted
;   caught 1 fatal ERROR condition
; Evaluation aborted on #<SIMPLE-ERROR "~@<The assertion ~S failed~:[.~:; ~
;                                            with ~:*~{~S = ~S~^, ~}.~]~:@>" {10025035B3}>.

Here is my .asd

(defsystem "clkan"
  :version "0.0.1"
  :author "Sherman Lau"
  :license ""
  :defsystem-depends-on (:cffi/c2ffi)
  :depends-on (:cffi
	       :cffi/c2ffi)
  :components ((:file "c2ffi"
		      :pathname "src/c2ffi")
	       (:module "src"
                :components
                ((:file "utils")
		 (:file "clkan" :depends-on ("utils"))))
	       (:module "vulkan-specs"
		:depends-on ("c2ffi")
		:components ((:cffi/c2ffi-file "vulkan_core.h"
			      :package #:clkan.c2ffi
			      :foreign-library-name "clkan.c2ffi::libvulkan"
			      :foreign-library-spec ((t (:default "libvulkan")))
			      :include-sources :all
			      :include-definitions :all
			      )))
	       )
  :description ""
  :in-order-to ((test-op (test-op "clkan/tests"))))

How should I fix it?

@C-Entropy
Copy link
Author

json:

{ "tag": "struct", "ns": 0, "name": "StdVideoH264SpsVuiFlags", "id": 0, "location": "/usr/include/vk_video/vulkan_video_codec_h264std.h:178:16", "bit-size": 32, "bit-alignment": 32, "fields": [{ "tag": "field", "name": "aspect_ratio_info_present_flag", "bit-offset": 0, "bit-size": 32, "bit-alignment": 32, "type": { "tag": ":bitfield", "width": 1, "type": { "tag": "uint32_t" } } }, { "tag": "field", "name": "overscan_info_present_flag", "bit-offset": 1, "bit-size": 32, "bit-alignment": 32, "type": { "tag": ":bitfield", "width": 1, "type": { "tag": "uint32_t" } } }, { "tag": "field", "name": "overscan_appropriate_flag", "bit-offset": 2, "bit-size": 32, "bit-alignment": 32, "type": { "tag": ":bitfield", "width": 1, "type": { "tag": "uint32_t" } } }, { "tag": "field", "name": "video_signal_type_present_flag", "bit-offset": 3, "bit-size": 32, "bit-alignment": 32, "type": { "tag": ":bitfield", "width": 1, "type": { "tag": "uint32_t" } } }, { "tag": "field", "name": "video_full_range_flag", "bit-offset": 4, "bit-size": 32, "bit-alignment": 32, "type": { "tag": ":bitfield", "width": 1, "type": { "tag": "uint32_t" } } }, { "tag": "field", "name": "color_description_present_flag", "bit-offset": 5, "bit-size": 32, "bit-alignment": 32, "type": { "tag": ":bitfield", "width": 1, "type": { "tag": "uint32_t" } } }, { "tag": "field", "name": "chroma_loc_info_present_flag", "bit-offset": 6, "bit-size": 32, "bit-alignment": 32, "type": { "tag": ":bitfield", "width": 1, "type": { "tag": "uint32_t" } } }, { "tag": "field", "name": "timing_info_present_flag", "bit-offset": 7, "bit-size": 32, "bit-alignment": 32, "type": { "tag": ":bitfield", "width": 1, "type": { "tag": "uint32_t" } } }, { "tag": "field", "name": "fixed_frame_rate_flag", "bit-offset": 8, "bit-size": 32, "bit-alignment": 32, "type": { "tag": ":bitfield", "width": 1, "type": { "tag": "uint32_t" } } }, { "tag": "field", "name": "bitstream_restriction_flag", "bit-offset": 9, "bit-size": 32, "bit-alignment": 32, "type": { "tag": ":bitfield", "width": 1, "type": { "tag": "uint32_t" } } }, { "tag": "field", "name": "nal_hrd_parameters_present_flag", "bit-offset": 10, "bit-size": 32, "bit-alignment": 32, "type": { "tag": ":bitfield", "width": 1, "type": { "tag": "uint32_t" } } }, { "tag": "field", "name": "vcl_hrd_parameters_present_flag", "bit-offset": 11, "bit-size": 32, "bit-alignment": 32, "type": { "tag": ":bitfield", "width": 1, "type": { "tag": "uint32_t" } } }] }

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

No branches or pull requests

1 participant