You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于ASDF/Quickload/Sly的开发疑问:需每次手动加载依赖?

关于ASDF、Quickload与Sly的使用解答

问题1:测试流程是否正确?有没有便捷加载方式?

你的测试流程是正确的,但可以通过以下方式简化操作:

  • 优化ASDF系统配置:在foobar.asd中,把测试系统(比如命名为foobar-test)的:depends-on字段加上:rove和:foobar,这样只需执行一次(ql:quickload :foobar-test),就能自动加载所有依赖(包括Rove和你的项目系统),之后直接运行(asdf:test-system :foobar)即可。
  • 利用Sly快捷键/内置命令:
    • 加载当前编辑的文件:按下C-c C-k
    • 加载指定系统:输入M-x sly-load-system,再输入系统名(如foobar-test)即可一键完成加载
    • 配置自动加载:在项目根目录创建.slyrc文件,写入(ql:quickload :foobar-test),启动Sly时会自动执行这条命令,无需手动输入
  • 自定义测试快捷函数:在REPL中定义一个简单函数:
    (defun run-foobar-tests ()
      (asdf:test-system :foobar))
    
    之后只需调用(run-foobar-tests)就能快速运行测试。

问题2:日常开发流程与克隆仓库后的高效工作方式

日常开发不会反复手动输入冗长命令,克隆仓库后可以按以下流程高效开展工作:

  1. 让ASDF/Quickload识别项目:
    • 方式一:把项目目录添加到ASDF的搜索路径:(push #P"/path/to/your/foobar/" asdf:*central-registry*)
    • 方式二:将项目放到Quickload的local-projects目录下(通常是~/quicklisp/local-projects/),Quickload会自动识别系统
  2. 启动Sly并加载项目:
    • 直接在REPL中执行(ql:quickload :foobar-test),一次性加载所有开发与测试依赖
    • 或通过Sly的M-x sly-load-system命令加载目标系统
  3. 日常开发循环:
    • 修改代码后,用C-c C-k重新加载当前文件,或C-c C-l重新加载整个系统
    • 运行测试:使用M-x sly-run-tests(Sly集成的测试命令),或调用之前定义的run-foobar-tests函数
    • 若使用Rove,还可以开启自动测试模式:(rove:enable-autotest),修改代码后会自动触发相关测试
  4. 进阶优化:可以配置Sly的项目模板,或使用quickproject这类工具快速初始化符合规范的项目,减少手动配置步骤。

内容的提问来源于stack exchange,提问作者phtrivier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 02:52:11