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