代码之家  ›  专栏  ›  技术社区  ›  Alexander Artemenko

为什么ql:quickload忽略错误但是asdf:加载系统为不是吗?

  •  3
  • Alexander Artemenko  · 技术社区  · 7 年前

    ql:quickload 只是默默地跳过严重的错误,如:

    ;Compiler warnings for "home:common-lisp;mito-email-auth;src;models.lisp.newest" :
    ;   In SEND-CODE: In the form ("Для входа на сайт [Skazorama.ru](~A), перейдите по [этой ссылке](~A)" URL URL), "Для входа на сайт [Skazorama.ru](~A), перейдите по [этой ссылке](~A)" is not a symbol or lambda expression.
    

    但是当我用 asdf:load-system ,将弹出一个错误并可用于调试。

    你怎么能忍受这种行为?

    1 回复  |  直到 7 年前
        1
  •  8
  •   Xach    7 年前

    之所以会发生这种情况,是因为Quicklisp在设计上抑制了它提供的库的加载输出,并通过打印来总结进度 . s、 我们的想法是,这些支持库是固定的基础设施,输出是不必要的额外噪音。

    但是,在加载您自己的项目时,这是一种不好的行为,因为项目可能会不断变化,而且冗长且信息丰富的消息非常有用。

    我还没有找到一个系统来为您自己的项目显示详细的输出,为Quicklisp提供的项目显示简洁的输出。同时,出于我自己的目的,我发现 (ql:quickload "my-project" :verbose t) *quickload-verbose* 像我需要的那样工作。如果这些选项对您不起作用,我很想知道有关您的配置的更多信息,例如,正在使用的实现和版本。

    推荐文章