Discussion:
[Lisp-cn] 怎么理解asdf和lisp程序的打包?
宋为@凉拌茶叶
2014-02-23 07:08:12 UTC
Permalink
环境为sbcl和clisp

我机器上asdf并不遵守官方手册中这样的设定:
The simplest way to add a path to your search path, say
/home/luser/.asd-link-farm/ is to create the directory
~/.config/common-lisp/source-registry.conf.d/ and there create a file
with any name of your choice, and with the type conf, for instance
(:directory "/home/luser/.asd-link-farm/")
If you want all the subdirectories under /home/luser/lisp/ to be
(:tree "/home/luser/lisp/")
检查了asdf:*central-registry*变量,仅有
(#P"/home/leo/quicklisp/quicklisp/")
后来发现/etc/common-lisp/source-registry.conf.d下面有如下文件(系统是
Ubuntu)
03-clbuild.conf 01-common-lisp-controller.conf
02-common-lisp-controller-userdir.conf
内容是
(:directory #p"/usr/share/common-lisp/systems/") ;空的
(:directory (:home #p".clc/systems/")) ;没有这个地方
(:directory #p"/usr/share/common-lisp/clbuild/systems/") ;没有这个地
方,但是/usr/share/common-lisp/source有一些源码
也是没有起到任何作用,亦不知道会有什么东西来读取它们。

asdf到底是怎么读取工作路径的?

是不是Quicklisp的干扰?

如果没有Quicklisp,Debian系操作系统提供了一大堆cl-*包又该怎么使用呢???

Debian系的系统有没有打包用Lisp写的应用程序(不是函数库)可供参考的?(我
的意思是,正常的Linux发行版上应该如何打包发布 Lisp程序?)

.sbclrc
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
.clisprc.lisp
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
--
--
Lisp-cn(Lisp中文用户组)
CLUG http://lisp.org.cn

---
您收到此邮件是因为您订阅了 Google 网上论坛的“Lisp-cn(Lisp中文用户组)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 lisp-cn+***@googlegroups.com。
要查看更多选项,请访问 https:/
Xiaofeng Yang
2014-02-23 15:44:21 UTC
Permalink
我没仔细看䜠的邮件猜测䜠的意思是文档和实际对䞍䞊。䞍过实际情况是䜠所甚的asdf到底怎样只有源代码胜告诉䜠。ql本身就甚䞀䞪自己改过的asdf及倖就算是原汁原味的也芁确讀文档和䜠所甚的asdf对的䞊。䞀般asdf郜䌚随实现䞀起发垃有的实现䌚自己做修改。

debian的包建议别甚盎接甚quicklisp的就奜。cl䞖界几乎没有什么皳定完善的䞜西可以甚倧家郜圚甚snapshot䜠也芁跟着甚snapshot才行。

实际䞊䜠基本䞊只芁搞枅楚quicklisp怎么甚就行啊。管asdf只䌚搞乱䜠。

无论劂䜕cl蜯件最奜的发垃方匏就是以源码圢匏发垃即䜿是应甚皋序也是劂歀。
环境䞺sbcl和clisp
我机噚䞊asdf并䞍遵守官方手册䞭这样的讟定
The simplest way to add a path to your search path, say
/home/luser/.asd-link-farm/ is to create the directory
~/.config/common-lisp/source-registry.conf.d/ and there create a file
with any name of your choice, and with the type conf, for instance
(:directory "/home/luser/.asd-link-farm/")
If you want all the subdirectories under /home/luser/lisp/ to be
(:tree "/home/luser/lisp/")
检查了asdf:*central-registry*变量仅有
(#P"/home/leo/quicklisp/quicklisp/")
后来发现/etc/common-lisp/source-registry.conf.d䞋面有劂䞋文件系统是 Ubuntu
03-clbuild.conf 01-common-lisp-controller.conf 02-common-lisp-controller-
userdir.conf
内容是
(:directory #p"/usr/share/common-lisp/systems/") ;空的
(:directory (:home #p".clc/systems/")) ;没有这䞪地方
(:directory #p"/usr/share/common-lisp/clbuild/systems/") ;没有这䞪地
方䜆是/usr/share/common-lisp/source有䞀些源码
也是没有起到任䜕䜜甚亊䞍知道䌚有什么䞜西来读取它们。
asdf到底是怎么读取工䜜路埄的
是䞍是Quicklisp的干扰
劂果没有QuicklispDebian系操䜜系统提䟛了䞀倧堆cl-*包又该怎么䜿甚呢
Debian系的系统有没有打包甚Lisp写的应甚皋序䞍是凜数库可䟛参考的我 的意思是正垞的Linux发行版䞊应该劂䜕打包发垃
Lisp皋序
.sbclrc
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
.clisprc.lisp
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
--- 悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问 https://groups.google.com/groups/opt_out。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到 lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/groups/opt_out。
宋为@凉拌茶叶
2014-02-25 15:27:47 UTC
Permalink
谢谢~但是这个snapshot是指dump出的镜像么?
我没仔细看你的邮件,猜测你的意思是文档和实际对不上。不过,实际情况是,你所用的asdf到底怎样,只有源代码能告诉你。ql本身就用一个自己改过的asdf,另外就算是原汁原味的也要确认文档和你所用的asdf对的上。一般asdf都会随实现一起发布,有的实现会自己做修改。
debian的包建议别用,直接用quicklisp的就好。cl世界几乎没有什么稳定完善的东西可以用,大家都在用snapshot,你也要跟着用snapshot才行。
实际上你基本上只要搞清楚quicklisp怎么用就行啦。管asdf只会搞乱你。
无论如何,cl软件最好的发布方式就是以源码形式发布,即使是应用程序也是如此。
Post by 宋为@凉拌茶叶
环境为sbcl和clisp
我机器上asdf并不遵守官方手册中这样的设定:
The simplest way to add a path to your search path, say
/home/luser/.asd-link-farm/ is to create the directory
~/.config/common-lisp/source-registry.conf.d/ and there create a file
with any name of your choice, and with the type conf, for instance
(:directory "/home/luser/.asd-link-farm/")
If you want all the subdirectories under /home/luser/lisp/ to be
(:tree "/home/luser/lisp/")
检查了asdf:*central-registry*变量,仅有
(#P"/home/leo/quicklisp/quicklisp/")
后来发现/etc/common-lisp/source-registry.conf.d下面有如下文件(系统是 Ubuntu)
03-clbuild.conf 01-common-lisp-controller.conf 02-common-lisp-controller-
userdir.conf
内容是
(:directory #p"/usr/share/common-lisp/systems/") ;空的
(:directory (:home #p".clc/systems/")) ;没有这个地方
(:directory #p"/usr/share/common-lisp/clbuild/systems/") ;没有这个地
方,但是/usr/share/common-lisp/source有一些源码
也是没有起到任何作用,亦不知道会有什么东西来读取它们。
asdf到底是怎么读取工作路径的?
是不是Quicklisp的干扰?
如果没有Quicklisp,Debian系操作系统提供了一大堆cl-*包又该怎么使用呢???
Debian系的系统有没有打包用Lisp写的应用程序(不是函数库)可供参考的?(我 的意思是,正常的Linux发行版上应该如何打包发布
Lisp程序?)
.sbclrc
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
.clisprc.lisp
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
--
--
Lisp-cn(Lisp中文用户组)
CLUG http://lisp.org.cn
--- 您收到此邮件是因为您订阅了 Google 网上论坛的“Lisp-cn(Lisp中文用户组)”论坛。
要查看更多选项,请访问 https://groups.google.com/groups/opt_out。
--
--
Lisp-cn(Lisp中文用户组)
CLUG http://lisp.org.cn

---
您收到此邮件是因为您订阅了 Google 网上论坛的“Lisp-cn(Lisp中文用户组)”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 lisp-cn+***@googlegroups.com。
要查看更多选项,请访问 https://groups.google.co
Xiaofeng Yang
2014-02-26 07:10:42 UTC
Permalink
是指任䜕时候从版本库checkout出来的那些代码。版本库的snapshot。
谢谢䜆是这䞪snapshot是指dump出的镜像么
Post by Xiaofeng Yang
我没仔细看䜠的邮件猜测䜠的意思是文档和实际对䞍䞊。䞍过实际情况是䜠所甚的asdf到底怎样只有源代码胜告诉䜠。
ql本身就甚䞀䞪自己改过的asdf及倖就算是原汁原味的也芁确讀文档和䜠所甚的asdf对的䞊。
䞀般asdf郜䌚随实现䞀起发垃有的实现䌚自己做修改。
debian的包建议别甚盎接甚quicklisp的就奜。cl䞖界几乎没有什么皳定完善的䞜西可以甚倧家郜圚甚snapshot
䜠也芁跟着甚snapshot才行。
实际䞊䜠基本䞊只芁搞枅楚quicklisp怎么甚就行啊。管asdf只䌚搞乱䜠。
无论劂䜕cl蜯件最奜的发垃方匏就是以源码圢匏发垃即䜿是应甚皋序也是劂歀。
环境䞺sbcl和clisp
我机噚䞊asdf并䞍遵守官方手册䞭这样的讟定
The simplest way to add a path to your search path, say
/home/luser/.asd-link-farm/ is to create the directory
~/.config/common-lisp/source-registry.conf.d/ and there create a file
with any name of your choice, and with the type conf, for instance
(:directory "/home/luser/.asd-link-farm/")
If you want all the subdirectories under /home/luser/lisp/ to be
(:tree "/home/luser/lisp/")
检查了asdf:*central-registry*变量仅有
(#P"/home/leo/quicklisp/quicklisp/")
后来发现/etc/common-lisp/source-registry.conf.d䞋面有劂䞋文件系统是 Ubuntu
03-clbuild.conf 01-common-lisp-controller.conf
02-common-lisp-controller-
userdir.conf
内容是
(:directory #p"/usr/share/common-lisp/systems/") ;空的
(:directory (:home #p".clc/systems/")) ;没有这䞪地方
(:directory #p"/usr/share/common-lisp/clbuild/systems/") ;没有这䞪地
方䜆是/usr/share/common-lisp/source有䞀些源码
也是没有起到任䜕䜜甚亊䞍知道䌚有什么䞜西来读取它们。
asdf到底是怎么读取工䜜路埄的
是䞍是Quicklisp的干扰
劂果没有QuicklispDebian系操䜜系统提䟛了䞀倧堆cl-*包又该怎么䜿甚呢
Debian系的系统有没有打包甚Lisp写的应甚皋序䞍是凜数库可䟛参考的我 的意思是正垞的Linux发行版䞊应该劂䜕打包发垃
Lisp皋序
.sbclrc
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
.clisprc.lisp
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
(user-homedir-pathname))))
(when (probe-file quicklisp-init)
(load quicklisp-init)))
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
--- 悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问 https://groups.google.com/groups/opt_out。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
--- 悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁查看曎倚选项请访问 https://groups.google.com/groups/opt_out。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”论坛。
芁退订歀论坛并停止接收歀论坛的电子邮件请发送电子邮件到 lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/groups/opt_out。
Loading...