[cffi-devel] Conflicting symbols problem on OpenMCL/CCL when loading CFFI

Daniel Katz dpkatz at gmail.com
Wed Jul 2 01:04:38 UTC 2008


Hi -

I just tried to load the latest CFFI from darcs into CCL 1.2, and I  
got a symbol conflict between CCL:COPY-FILE and ALEXANDRIA.0.DEV:COPY- 
FILE:

> CL-USER> (asdf:oos 'asdf:load-op :cffi)
> ; loading system definition from /Users/dkatz/dev/lisp/libs/clbuild/ 
> systems/cffi.asd into #<Package "ASDF0">
> ; registering #<SYSTEM CFFI #x8754B3E> as CFFI
> ; loading system definition from /Users/dkatz/dev/lisp/libs/clbuild/ 
> systems/babel.asd into #<Package "ASDF0">
> ; registering #<SYSTEM BABEL #x87910EE> as BABEL
> ; loading system definition from /Users/dkatz/dev/lisp/libs/clbuild/ 
> systems/alexandria.asd into #<Package "ASDF0">
> ; registering #<SYSTEM :ALEXANDRIA #x87BA8B6> as ALEXANDRIA
> ; loading system definition from /Users/dkatz/dev/lisp/libs/clbuild/ 
> systems/trivial-features.asd into #<Package "ASDF0">
> ; registering #<SYSTEM TRIVIAL-FEATURES #x86F53D6> as TRIVIAL-FEATURES
>
> Using #<Package "CCL"> in #<Package "CFFI-SYS">
> would cause name conflicts with symbols inherited by that package:
> ALEXANDRIA.0.DEV:COPY-FILE  COPY-FILE
>
>    [Condition of type CCL::USE-PACKAGE-CONFLICT-ERROR]
>
> Restarts:
>  0: [CONTINUE] Try again to use #<Package "CCL"> in #<Package "CFFI- 
> SYS">
>  1: [RESOLVE-BY-SHADOWING-IMPORT] SHADOWING-IMPORT one of each pair  
> of conflicting symbols.
>  2: [RETRY-COMPILE-FILE] Retry compiling #P"/Users/dkatz/dev/lisp/ 
> libs/clbuild/source/cffi/src/cffi-openmcl.lisp"
>  3: [SKIP-COMPILE-FILE] Skip compiling #P"/Users/dkatz/dev/lisp/ 
> libs/clbuild/source/cffi/src/cffi-openmcl.lisp"
>  4: [RETRY] Retry performing #<COMPILE-OP NIL #x85D71C6> on #<CL- 
> SOURCE-FILE "cffi-openmcl" #x85C588E>.
>  5: [ACCEPT] Continue, treating #<COMPILE-OP NIL #x85D71C6> on #<CL- 
> SOURCE-FILE "cffi-openmcl" #x85C588E> as having been successful.
>  6: [ABORT] Return to SLIME's top level.
>  7: [ABORT-BREAK] Reset this process
>  8: [ABORT] Kill this process
>
> Backtrace:
>   0: (CCL::USE-PACKAGE-1 #<Package "CFFI-SYS"> #<Package "CCL">)
>   1: (USE-PACKAGE '("ALEXANDRIA" "CFFI-UTILS" "CCL" "COMMON-LISP")  
> #<Package "CFFI-SYS">)
>   2: (CCL::%DEFINE-PACKAGE "CFFI-SYS" 'NIL 'NIL 'NIL 'NIL 'NIL  
> '("ALEXANDRIA" "CFFI-UTILS" "CCL" "COMMON-LISP") 'NIL 'NIL '("% 
> CALLBACK" "%DEFCALLBACK" "%FOREIGN-SYMBOL-POINTER"
>        "WITH-POINTER-TO-VECTOR-DATA" "MAKE-SHAREABLE-BYTE-VECTOR"
>        "NATIVE-NAMESTRING" "%CLOSE-FOREIGN-LIBRARY"
>        "%LOAD-FOREIGN-LIBRARY" "%FOREIGN-TYPE-SIZE"
>        "%FOREIGN-TYPE-ALIGNMENT" ...) 'NIL)


When I look in the CFFI code, the problem seems to come from cffi-- 
openmcl.lisp where ALEXANDRIA and CCL are both being :use-d without  
any shadowing.  As far as I can tell, there are no calls to either  
COPY-FILE function anywhere in the CFFI code, so it seems to me that  
choosing one of these functions to shadow the other should be a  
simple affair since it shouldn't matter at all which one is chosen..

Would it be possible to get this fixed?

Thanks.

Dan



More information about the cffi-devel mailing list