classimp icon indicating copy to clipboard operation
classimp copied to clipboard

Update to support version 5.3+?

Open zyd-n opened this issue 1 year ago • 1 comments

Latest version on Fedora is 5.3.1, 5.4.2 upstream. Could this get updated to support some newer versions? Thanks.

zyd-n avatar Aug 17 '24 22:08 zyd-n

will try to get to it at some point soon, feel free to remind me about it if it takes too long.

3b avatar Aug 24 '24 12:08 3b

pushed something to the 5.4.3 branch, let me know if it works with your code and library versions.

3b avatar Sep 19 '24 09:09 3b

pushed something to the 5.4.3 branch, let me know if it works with your code and library versions.

Not working yet, I get a file compilation error when compiling low-level.lisp. The ecase expression doesn't seem to have a clause for 5.3+, maybe relevant? On my Fedora box, assimp version returns 5.3.

Lisp Session Log
CL-USER> (ql:quickload :classimp :verbose t)
To load "classimp":
  Load 1 ASDF system:
    classimp
; Loading "classimp"
; compiling file "/home/zyd/src/third-party/classimp/low-level.lisp" (written 20 SEP 2024 02:55:32 PM):
........

; file: /home/zyd/src/third-party/classimp/low-level.lisp
; in: DEFCSTRUCT/V AI-SCENE
;     (%OPEN-ASSET-IMPORT-LIBRARY::DEFCSTRUCT/V %OPEN-ASSET-IMPORT-LIBRARY:AI-SCENE
;       (%OPEN-ASSET-IMPORT-LIBRARY:M-FLAGS :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY:M-ROOT-NODE
;        (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-NODE)))
;       (%OPEN-ASSET-IMPORT-LIBRARY:M-NUM-MESHES :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY:M-MESHES
;        (:POINTER (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-MESH))))
;       (%OPEN-ASSET-IMPORT-LIBRARY:M-NUM-MATERIALS :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY:M-MATERIALS
;        (:POINTER (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-MATERIAL))))
;       (%OPEN-ASSET-IMPORT-LIBRARY:M-NUM-ANIMATIONS :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY:M-ANIMATIONS
;        (:POINTER (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-ANIMATION))))
;       (%OPEN-ASSET-IMPORT-LIBRARY:M-NUM-TEXTURES :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY:M-TEXTURES
;        (:POINTER (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-TEXTURE))))
;       ...)
; 
; caught COMMON-LISP:ERROR:
;   (during macroexpansion of (DEFCSTRUCT/V AI-SCENE
;     ...))
;   :5.3+ fell through COMMON-LISP:ECASE expression.
;   Wanted one of (:|3.0-3.3| :|3.0-4.1| :|3.0-5.0| :|4.0-5.4.2| :3.0+ :3.1+ :3.2+
;                  :3.3+ :>3.3 :4.0+ :4.1+ :5.0+ :5.1+ :5.2+ :>5.2 :5.3.0+ :5.4.0+
;                  :5.4.3+ :>5.4).

; in: DEFCFUN ("aiImportFile" AI-IMPORT-FILE)
;     (CFFI:DEFCFUN ("aiImportFile" %OPEN-ASSET-IMPORT-LIBRARY:AI-IMPORT-FILE)
;         (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-SCENE))
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-FILE :STRING)
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-FLAGS
;        %OPEN-ASSET-IMPORT-LIBRARY:AI-POST-PROCESS-STEPS))
; 
; caught COMMON-LISP:ERROR:
;   (during macroexpansion of (DEFCFUN ("aiImportFile" AI-IMPORT-FILE)
;       ...))
;   Unknown CFFI type (:STRUCT AI-SCENE)

; in: DEFCSTRUCT AI-UV-TRANSFORM
;     (CFFI:DEFCSTRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-UV-TRANSFORM
;       (%OPEN-ASSET-IMPORT-LIBRARY:M-TRANSLATION
;        (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-VECTOR-2D))
;       (%OPEN-ASSET-IMPORT-LIBRARY:M-SCALING
;        (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-VECTOR-2D))
;       (%OPEN-ASSET-IMPORT-LIBRARY:M-ROTATION %OPEN-ASSET-IMPORT-LIBRARY:AI-REAL))
; --> DEFCLASS PROGN 
; ==>
;   (LET ()
;     (SB-PCL::LOAD-DEFCLASS '%OPEN-ASSET-IMPORT-LIBRARY::AI-UV-TRANSFORM-TCLASS
;                            'STANDARD-CLASS
;                            '(CFFI::FOREIGN-STRUCT-TYPE
;                              CFFI::TRANSLATABLE-FOREIGN-TYPE)
;                            (LIST) (LIST :DIRECT-DEFAULT-INITARGS NIL) 'NIL 'NIL
;                            'NIL (SB-C:SOURCE-LOCATION)))
; 
; note: deleting unused function
;   "top level form"

; ==>
;   (CFFI::NOTICE-FOREIGN-STRUCT-DEFINITION
;    '%OPEN-ASSET-IMPORT-LIBRARY:AI-UV-TRANSFORM
;    '(:CLASS %OPEN-ASSET-IMPORT-LIBRARY::AI-UV-TRANSFORM-TCLASS)
;    '((%OPEN-ASSET-IMPORT-LIBRARY:M-TRANSLATION
;       (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-VECTOR-2D))
;      (%OPEN-ASSET-IMPORT-LIBRARY:M-SCALING
;       (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-VECTOR-2D))
;      (%OPEN-ASSET-IMPORT-LIBRARY:M-ROTATION
;       %OPEN-ASSET-IMPORT-LIBRARY:AI-REAL)))
; 
; note: deleting unused function
;   "top level form"

; --> CFFI:DEFINE-PARSE-METHOD EVAL-WHEN SETF 
; ==>
;   (LET* ((#:NEW0
;           (LAMBDA ()
;             (CFFI::PARSE-DEPRECATED-STRUCT-TYPE
;              '%OPEN-ASSET-IMPORT-LIBRARY:AI-UV-TRANSFORM :STRUCT))))
;     (FUNCALL #'(SETF CFFI::FIND-TYPE-PARSER) #:NEW0
;              '%OPEN-ASSET-IMPORT-LIBRARY:AI-UV-TRANSFORM))
; 
; note: deleting unused function
;   "top level form"

; --> CFFI:DEFINE-PARSE-METHOD EVAL-WHEN 
; ==>
;   '%OPEN-ASSET-IMPORT-LIBRARY:AI-UV-TRANSFORM
; 
; note: deleting unused function
;   "top level form"

; ==>
;   '(:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-UV-TRANSFORM)
; 
; note: deleting unused function
;   "top level form"

; in: DEFCSTRUCT AI-MEMORY-INFO
;     (CFFI:DEFCSTRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-MEMORY-INFO
;       (%OPEN-ASSET-IMPORT-LIBRARY:TEXTURES :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY:MATERIALS :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY:MESHES :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY:NODES :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY:ANIMATIONS :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY:CAMERAS :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY:LIGHTS :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY:TOTAL :UNSIGNED-INT))
; --> DEFCLASS PROGN 
; ==>
;   (LET ()
;     (SB-PCL::LOAD-DEFCLASS '%OPEN-ASSET-IMPORT-LIBRARY::AI-MEMORY-INFO-TCLASS
;                            'STANDARD-CLASS
;                            '(CFFI::FOREIGN-STRUCT-TYPE
;                              CFFI::TRANSLATABLE-FOREIGN-TYPE)
;                            (LIST) (LIST :DIRECT-DEFAULT-INITARGS NIL) 'NIL 'NIL
;                            'NIL (SB-C:SOURCE-LOCATION)))
; 
; note: deleting unused function
;   "top level form"

; ==>
;   (CFFI::NOTICE-FOREIGN-STRUCT-DEFINITION
;    '%OPEN-ASSET-IMPORT-LIBRARY:AI-MEMORY-INFO
;    '(:CLASS %OPEN-ASSET-IMPORT-LIBRARY::AI-MEMORY-INFO-TCLASS)
;    '((%OPEN-ASSET-IMPORT-LIBRARY:TEXTURES :UNSIGNED-INT)
;      (%OPEN-ASSET-IMPORT-LIBRARY:MATERIALS :UNSIGNED-INT)
;      (%OPEN-ASSET-IMPORT-LIBRARY:MESHES :UNSIGNED-INT)
;      (%OPEN-ASSET-IMPORT-LIBRARY:NODES :UNSIGNED-INT)
;      (%OPEN-ASSET-IMPORT-LIBRARY:ANIMATIONS :UNSIGNED-INT)
;      (%OPEN-ASSET-IMPORT-LIBRARY:CAMERAS :UNSIGNED-INT)
;      (%OPEN-ASSET-IMPORT-LIBRARY:LIGHTS :UNSIGNED-INT)
;      (%OPEN-ASSET-IMPORT-LIBRARY:TOTAL :UNSIGNED-INT)))
; 
; note: deleting unused function
;   "top level form"

; --> CFFI:DEFINE-PARSE-METHOD EVAL-WHEN SETF 
; ==>
;   (LET* ((#:NEW0
;           (LAMBDA ()
;             (CFFI::PARSE-DEPRECATED-STRUCT-TYPE
;              '%OPEN-ASSET-IMPORT-LIBRARY:AI-MEMORY-INFO :STRUCT))))
;     (FUNCALL #'(SETF CFFI::FIND-TYPE-PARSER) #:NEW0
;              '%OPEN-ASSET-IMPORT-LIBRARY:AI-MEMORY-INFO))
; 
; note: deleting unused function
;   "top level form"

; --> CFFI:DEFINE-PARSE-METHOD EVAL-WHEN 
; ==>
;   '%OPEN-ASSET-IMPORT-LIBRARY:AI-MEMORY-INFO
; 
; note: deleting unused function
;   "top level form"

; ==>
;   '(:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-MEMORY-INFO)
; 
; note: deleting unused function
;   "top level form"

; in: DEFCFUN ("aiGetVersionRevision" AI-GET-VERSION-REVISION)
;     (CFFI:DEFCFUN ("aiGetVersionRevision"
;                    %OPEN-ASSET-IMPORT-LIBRARY:AI-GET-VERSION-REVISION)
;         :UNSIGNED-INT)
; --> DEFUN PROGN 
; ==>
;   (SB-IMPL::%DEFUN '%OPEN-ASSET-IMPORT-LIBRARY:AI-GET-VERSION-REVISION
;                    (SB-INT:NAMED-LAMBDA %OPEN-ASSET-IMPORT-LIBRARY:AI-GET-VERSION-REVISION
;                        NIL
;                      (DECLARE (SB-C::TOP-LEVEL-FORM))
;                      (BLOCK %OPEN-ASSET-IMPORT-LIBRARY:AI-GET-VERSION-REVISION
;                        (CFFI-SYS:%FOREIGN-FUNCALL "aiGetVersionRevision"
;                                                   (:UNSIGNED-INT) :CONVENTION
;                                                   :CDECL :LIBRARY :DEFAULT))))
; 
; note: deleting unused function
;   "top level form"

; in: DEFCFUN ("aiGetMemoryRequirements" AI-GET-MEMORY-REQUIREMENTS)
;     (CFFI:DEFCFUN ("aiGetMemoryRequirements"
;                    %OPEN-ASSET-IMPORT-LIBRARY:AI-GET-MEMORY-REQUIREMENTS)
;         :VOID
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-IN
;        (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-SCENE)))
;       (%OPEN-ASSET-IMPORT-LIBRARY::IN
;        (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-MEMORY-INFO))))
; 
; caught COMMON-LISP:ERROR:
;   (during macroexpansion of (DEFCFUN ("aiGetMemoryRequirements" AI-GET-MEMORY-REQUIREMENTS)
;       ...))
;   Unknown CFFI type (:STRUCT AI-SCENE)

; in: DEFCFUN ("aiGetEmbeddedTexture" AI-GET-EMBEDDED-TEXTURE)
;     (CFFI:DEFCFUN ("aiGetEmbeddedTexture"
;                    %OPEN-ASSET-IMPORT-LIBRARY::AI-GET-EMBEDDED-TEXTURE)
;         (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-TEXTURE))
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-IN
;        (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-SCENE)))
;       (%OPEN-ASSET-IMPORT-LIBRARY::FILENAME :STRING))
; 
; caught COMMON-LISP:ERROR:
;   (during macroexpansion of (DEFCFUN ("aiGetEmbeddedTexture" AI-GET-EMBEDDED-TEXTURE)
;       ...))
;   Unknown CFFI type (:STRUCT AI-SCENE)
.
; in: DEFCFUN ("aiImportFileEx" AI-IMPORT-FILE-EX)
;     (CFFI:DEFCFUN ("aiImportFileEx" %OPEN-ASSET-IMPORT-LIBRARY:AI-IMPORT-FILE-EX)
;         (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-SCENE))
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-FILE :STRING)
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-FLAGS
;        %OPEN-ASSET-IMPORT-LIBRARY:AI-POST-PROCESS-STEPS)
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-FS
;        (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-FILE-IO))))
; 
; caught COMMON-LISP:ERROR:
;   (during macroexpansion of (DEFCFUN ("aiImportFileEx" AI-IMPORT-FILE-EX)
;       ...))
;   Unknown CFFI type (:STRUCT AI-SCENE)

; in:
;      DEFCFUN ("aiImportFileExWithProperties" AI-IMPORT-FILE-EX-WITH-PROPERTIES)
;     (CFFI:DEFCFUN ("aiImportFileExWithProperties"
;                    %OPEN-ASSET-IMPORT-LIBRARY:AI-IMPORT-FILE-EX-WITH-PROPERTIES)
;         (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-SCENE))
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-FILE :STRING)
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-FLAGS
;        %OPEN-ASSET-IMPORT-LIBRARY:AI-POST-PROCESS-STEPS)
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-FS
;        (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-FILE-IO)))
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-PROPS (:POINTER)))
; 
; caught COMMON-LISP:ERROR:
;   (during macroexpansion of (DEFCFUN ("aiImportFileExWithProperties" AI-IMPORT-FILE-EX-WITH-PROPERTIES)
;       ...))
;   Unknown CFFI type (:STRUCT AI-SCENE)

; in:
;      DEFCFUN ("aiImportFileFromMemoryWithProperties"
;           AI-IMPORT-FILE-FROM-MEMORY-WITH-PROPERTIES)
;     (CFFI:DEFCFUN ("aiImportFileFromMemoryWithProperties"
;                    %OPEN-ASSET-IMPORT-LIBRARY:AI-IMPORT-FILE-FROM-MEMORY-WITH-PROPERTIES)
;         (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-SCENE))
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-BUFFER :POINTER)
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-LENGTH :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-FLAGS
;        %OPEN-ASSET-IMPORT-LIBRARY:AI-POST-PROCESS-STEPS)
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-HINT :STRING)
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-PROPS :POINTER))
; 
; caught COMMON-LISP:ERROR:
;   (during macroexpansion of (DEFCFUN ("aiImportFileFromMemoryWithProperties"
;             AI-IMPORT-FILE-FROM-MEMORY-WITH-PROPERTIES)
;       ...))
;   Unknown CFFI type (:STRUCT AI-SCENE)
.
; in: DEFCFUN ("aiReleaseImport" AI-RELEASE-IMPORT)
;     (CFFI:DEFCFUN ("aiReleaseImport" %OPEN-ASSET-IMPORT-LIBRARY:AI-RELEASE-IMPORT)
;         :VOID
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-SCENE
;        (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-SCENE))))
; 
; caught COMMON-LISP:ERROR:
;   (during macroexpansion of (DEFCFUN ("aiReleaseImport" AI-RELEASE-IMPORT)
;       ...))
;   Unknown CFFI type (:STRUCT AI-SCENE)

; in: DEFCFUN ("aiApplyPostProcessing" AI-APPLY-POST-PROCESSING)
;     (CFFI:DEFCFUN ("aiApplyPostProcessing"
;                    %OPEN-ASSET-IMPORT-LIBRARY:AI-APPLY-POST-PROCESSING)
;         (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-SCENE))
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-SCENE
;        (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-SCENE)))
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-FLAGS :UNSIGNED-INT))
; 
; caught COMMON-LISP:ERROR:
;   (during macroexpansion of (DEFCFUN ("aiApplyPostProcessing" AI-APPLY-POST-PROCESSING)
;       ...))
;   Unknown CFFI type (:STRUCT AI-SCENE)

; in: DEFCFUN ("aiImportFileFromMemory" AI-IMPORT-FILE-FROM-MEMORY)
;     (CFFI:DEFCFUN ("aiImportFileFromMemory"
;                    %OPEN-ASSET-IMPORT-LIBRARY:AI-IMPORT-FILE-FROM-MEMORY)
;         (:POINTER (:STRUCT %OPEN-ASSET-IMPORT-LIBRARY:AI-SCENE))
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-BUFFER :POINTER)
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-LENGTH :UNSIGNED-INT)
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-FLAGS
;        %OPEN-ASSET-IMPORT-LIBRARY:AI-POST-PROCESS-STEPS)
;       (%OPEN-ASSET-IMPORT-LIBRARY::P-HINT :POINTER))
; 
; caught COMMON-LISP:ERROR:
;   (during macroexpansion of (DEFCFUN ("aiImportFileFromMemory" AI-IMPORT-FILE-FROM-MEMORY)
;       ...))
;   Unknown CFFI type (:STRUCT AI-SCENE)

zyd-n avatar Sep 20 '24 21:09 zyd-n

ok, that should be fixed now

3b avatar Sep 20 '24 21:09 3b

Seems good now. Though I get this odd warning:

; file: /home/zyd/src/third-party/classimp/low-level.lisp
; in: DEFUN %OPEN-ASSET-IMPORT-LIBRARY::FOO
;     (%OPEN-ASSET-IMPORT-LIBRARY::NONEXISTANT)
; 
; caught STYLE-WARNING:
;   undefined function: %OPEN-ASSET-IMPORT-LIBRARY::NONEXISTANT
; 
; compilation unit finished
;   Undefined function:
;     %OPEN-ASSET-IMPORT-LIBRARY::NONEXISTANT
;   caught 1 STYLE-WARNING condition

zyd-n avatar Sep 20 '24 22:09 zyd-n

hmm, no idea what that was doing there, cleaned it up. thanks for testing

3b avatar Sep 20 '24 23:09 3b

merged the branch

3b avatar Oct 01 '24 03:10 3b