How to use packages installed by quicklisp?

后端 未结 1 1118
故里飘歌
故里飘歌 2021-02-05 18:24

I\'ve installed the CL-PNG package using quicklisp.

(ql:quicklisp \'png)

Now I want to define my own package which depends on the CL-PNG packag

1条回答
  •  北荒
    北荒 (楼主)
    2021-02-05 18:54

    You confuse two separate notions: a system and a package. A package is defined by Common Lisp standard and it's a collection of symbols, a way to control their visibility and usage. A system is not defined by the standard, it's a notion introduced by ASDF, which is a collection of metadata to manage files inter-dependencies in a single project in order to be able to properly compile and load it. Quicklisp is built on top of ASDF to provide a way to distribute projects, described in the form of ASDF systems.

    So when you install (quickload) a system, called PNG, this doesn't mean, that this system has a package, called PNG. Does the system define any packages (usually it defines one, or even several of them) and how they are called is at the discretion of its author. Most of the projects will have package.lisp or packages.lisp files, where their packages are defined.

    But in the case of CL-PNG system you're loading, it actually defines the package PNG, and it should be available in the running process after you quickload it. But you should somehow load it every time you start your Lisp system. ASDF provides a means to define a dependency on CL-PNG system, so that you can just load only your own system, and all of the systems it depends on will be loaded automatically, making available all packages you want to use.

    0 讨论(0)
提交回复
热议问题