Minor package system inconsistencies
The LLVM-SYS and KIN packages, the latter from cando, are defined in C++. The C++ definition machinery is wrong in that there are name conflicts: These packages both use the CL package, and have their own symbols with the same names as CL symbols, without them being shadowing symbols.
Basically, this should return nil but instead returns (KIN:ATOM KIN:COUNT LLVM-SYS:AND LLVM-SYS:MAKE LLVM-SYS:FUNCTION LLVM-SYS:TYPE LLVM-SYS:MIN LLVM-SYS:OR):
(let (c)
(dolist (user (list-all-packages) c)
(let ((shadow (package-shadowing-symbols user)))
(dolist (used (package-use-list user))
(do-external-symbols (used-s used)
(let* ((name (symbol-name used-s))
(user-s (find-symbol name user)))
(unless (or (eq used-s user-s) (member user-s shadow))
(push user-s c))))))))
#1142 is related in that it demonstrates that the C++ mechanism to define a symbol as shadowing is broken, meaning we can't fix this the obvious way until that is resolved. We could manually shadow the symbols later, but that's an ugly workaround for the package definitions' intrinsic brokenness.