common lisp使用asdf打包程序总结

今天本来想写点web框架代码,早早睡觉的,框架代码写了一点。发现测试时候load 然后执行,想文件多了没法搞了。先看看cl打包吧。 然后就查看过的书,找讲包的内容,发现很少。就一个defpackage,实用cl编程里边讲的多一点,注意事项很多,然并卵,写完发现一样不好用。 去群里求救,需要asdf这么个东西,起了个蛋疼名。之前用过但是不知道干嘛的,文档 https://www.common-lisp.net/project/asdf/asdf.html 首页有个有意思的地方Examples Download any of the many packages available through Quicklisp to see as many examples. 哈哈,不过文档里有。 看文档sbcl里边好像自带asdf,我装过quicklisp,并且启动repl的时候自动加载。可以直接使用(asdf:asdf-version)看到asdf的版本3.0.2 duang.asd
(in-package :asdf-user)

(asdf:defsystem duang
  :description "A simple Web Framework."
  :author "0x55aa "
  :license "BSD"
  :version "0.0.1"
  :depends-on (#:cl-async)
  :components ((:file "package")
               (:file "server")))
主要定义包的依赖关系 package.lisp
(defpackage :duang
  (:use :common-lisp :cl-async)
  (:nicknames dg)
  (:export #:start-server))
server.lisp
(in-package :duang)
(defun start-server () ())
然后代码的位置要能被sbcl发现,看文档可以自定义,等会儿看看quicklisp文档有没有。我直接放到~/quicklisp/local-projects/文件夹下了。 最后在repl里(asdf:load-system "duang") (dg:start-server)就行了 (require :duang) (load ) (ql:quickload "duang") 都行 这么点东西搞了一晚上

上一篇:
下一篇:

相关文章:

Categories: 博客记录

0 Responses so far.

Leave a Reply