Common lisp 使用asdf和defpackage自动解决符号命名冲突

Common lisp 使用asdf和defpackage自动解决符号命名冲突,common-lisp,asdf,Common Lisp,Asdf,我已经使用asdf定义了一个公共lisp包,它同时使用parenscript和clsql 但是这些包围绕函数GET-TIME存在命名冲突。加载模块后,我可以在提示下手动解决冲突(代码可能不准确): 我选择选项1 修改项目以自动解决此冲突的最佳方式是什么 我要修改.asd文件还是project.lisp文件 我认为答案可能与此有关,但我不太理解文档页面上给出的示例。包、符号、导出、使用等是Common Lisp的一项功能,而不是ASDF特有的 CL-USER 1 > (defpackage

我已经使用asdf定义了一个公共lisp包,它同时使用parenscript和clsql

但是这些包围绕函数GET-TIME存在命名冲突。加载模块后,我可以在提示下手动解决冲突(代码可能不准确):

我选择选项1

修改项目以自动解决此冲突的最佳方式是什么

我要修改.asd文件还是project.lisp文件

我认为答案可能与此有关,但我不太理解文档页面上给出的示例。

包、符号、导出、使用等是Common Lisp的一项功能,而不是ASDF特有的

CL-USER 1 > (defpackage "FOO" (:use "CL") (:export "BAZ"))
#<The FOO package, 0/16 internal, 1/16 external>

CL-USER 2 > (in-package "FOO")
#<The FOO package, 0/16 internal, 1/16 external>

FOO 3 > (defun baz () 'FOO)
BAZ

FOO 4 > (defpackage "BAR" (:use "CL") (:export "BAZ"))
#<The BAR package, 0/16 internal, 1/16 external>

FOO 5 > (defun bar:baz () 'bar::bar)
BAR:BAZ

FOO 6 > (in-package "CL-USER")
#<The COMMON-LISP-USER package, 54/64 internal, 0/4 external>

CL-USER 7 > (defpackage "ZIPPY"
              (:use "FOO" "BAR")
              (:shadowing-import-from "BAR" "BAZ"))
#<The ZIPPY package, 1/16 internal, 0/16 external>

CL-USER 8 > (in-package "ZIPPY")
#<The ZIPPY package, 1/16 internal, 0/16 external>

ZIPPY 9 > (baz)
BAR::BAR
CL-USER 1>(defpackage“FOO”(:使用“CL”)(:export“BAZ”))
#
CL-USER 2>(在“FOO”包中)
#
FOO 3>(defun baz()'FOO)
巴兹
FOO 4>(def包装“BAR”(:使用“CL”)(:导出“BAZ”))
#
FOO 5>(defun-bar:baz()'bar::bar)
酒吧:巴兹
FOO 6>(包装“CL-USER”中)
#
CL-USER 7>(defpackage“ZIPPY”
(:使用“FOO”“BAR”)
(:从“BAR”“BAZ”阴影导入)
#
CL-USER 8>(包装“ZIPPY”中)
#
活泼9>(baz)
酒吧

根据以上@Rainer Joswigs的回答,我的问题的具体答案是写我的defpackage表单如下:

 (defpackage #:my-package 
      (:use :cl :clsql :parenscript)
      (:shadowing-import-from :parenscript "GET-TIME")
      )
 (defpackage #:my-package 
      (:use :cl :clsql :parenscript)
      (:shadowing-import-from :parenscript "GET-TIME")
      )