Shinmera / qt-libs

Helper system to ensure the necessary library for CommonQt/Qtools development are available and deployable.
zlib License
18 stars 8 forks source link

ECL Requires &allow-other-keys In Method Definitions #10

Closed gitfoxi closed 7 years ago

gitfoxi commented 7 years ago

On a Linux64 system where qt-libs works great under SBCL, I get this when I attempt to load using ECL 16.1.3:

> (require :ecl-quicklisp)

;;; Loading #P"/usr/local/lib/ecl-16.1.3/ecl-quicklisp.fas"
;;; Loading #P"/usr/local/lib/ecl-16.1.3/ecl-curl.fas"
;;; Loading #P"/usr/local/lib/ecl-16.1.3/sockets.fas"
;;; Loading "/nfs/caoper/mfox/quicklisp/setup.lisp"
;;; Loading #P"/usr/local/lib/ecl-16.1.3/asdf.fas"
("ECL-QUICKLISP" "ASDF" "asdf" "UIOP" "uiop" "CMP" "ECL-CURL" "SB-BSD-SOCKETS"
 "SOCKETS")
> (ql:quickload :qt-libs)
To load "qt-libs":
  Load 1 ASDF system:
    qt-libs
; Loading "qt-libs"

Condition of type: SIMPLE-ERROR
Cannot add the method #<standard-method UNNAMED :AROUND (T QT-LIB-GENERATOR:FOREIGN-LIBRARY)> to the generic function #<standard-generic-function QT-LIB-GENERATOR:STAGE> because their lambda lists (STAGE FOREIGN-LIBRARY &KEY FORCE &ALLOW-OTHER-KEYS) and (STAGE LIBRARY &REST ARGS &KEY) are not congruent.

Not sure if ECL's problem or qt-libs'. Don't even know how to find the source where the problem occurs. My guess is that ECL is being pedantic and that QT-LIB-GENERATOR:STAGE needs &ALLOW-OTHER-KEYS.

I will try again from git source and see what else I can tell.

Shinmera commented 7 years ago

Indeed the missing &allow-other-keys from the method definitions was the issue. How very annoying.

gitfoxi commented 7 years ago

Wow. That's some fast service. Thanks @Shinmera !

Shinmera commented 7 years ago

Thanks for reporting it. I unfortunately don't usually test on ECL, so qt-libs and qtools might have some ECL-specific problems.

Shinmera commented 7 years ago

Looks like this is actually a bug in ECL: https://gitlab.com/embeddable-common-lisp/ecl/issues/352#note_22447630