文档章节

Clozure CL (user-homedir-pathname)问题总结

闲庭风
 闲庭风
发布于 2013/07/24 14:31
字数 584
阅读 478
收藏 1

自己的emacs配置在windows下使用已经很好了,也总结了很多脚本,最近在运行lisp时出现问题,我用的是sbcl和Clozure CL.这两个都是最优秀的开源lisp实现之一.我的配置文件都在我的git仓库目录,这样方便和其他机器上的同步,同样也把quicklisp安装到git仓库,这样不用在其他电脑用时需求下载相应 的库.我的配置文件在http://git.oschina.net/wuhen/emacs-config.

测试LISP步骤:

    一,SBCL:
    1),打开emacs-client.bat,按CTRL+-,Alt+X,输入slime<ret>sbcl
    2),在repl中输入(load "~/quicklisp.lisp")  
                         (quicklisp-quickstart :install) ;;默认安装到HOME变量指向的位置
                        (ql:add-to-init-file)  ;;在HOME目录中添加.sbclrc文件
    3),当再次启动sbcl时一切都正常,ql库已经自动加载了.

   二,Clozure CL   
    1),在HOME变量指向的目录中添加.ccl-init.lisp文件,并加入


;;; The following lines added by ql:add-to-init-file:
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp" (user-homedir-pathname))))  
  (when (probe-file quicklisp-init)
    (load quicklisp-init)))


    2),在emacs中按CTRL+-,Alt+X,输入slime<ret>ccl
    3),一切正常,ql库自动加载

emacs启动文件如下:

@echo off
set EMACS_HOME=c:/common-tools/emacs-23.4
rem set HOME=c:/common-tools/emacs-23.4
set HOME=D:/GitRepository/emacs-config-git
set SBCL_HOME=c:/common-tools/lisp/sbcl
set CCL_DEFAULT_DIRECTORY=c:/common-tools/lisp/ccl
rem ccl默认采用USERPROFILE做为用户HOME目录,在此设置环境变量改变CCL的HOME目录,以便和sbcl一起使用quicklisp.
set USERPROFILE=%HOME%
set EMACS_SERVER_FILE=%HOME%/.emacs.d/server/server
set PATH=%PATH%;%EMACS_HOME%/bin;%SBCL_HOME%;%CCL_DEFAULT_DIRECTORY%;%HOME%

rem runemacs --debug-init
RunHiddenConsole.exe "c:/common-tools/emacs-23.4/bin/emacsclientw.exe" --alternate-editor="c:/common-tools/emacs-23.4/bin/runemacs.exe" "%1"

如果想从右键菜单打开则执行emacs.reg即可.

总结说明:
    1,sbcl和ccl在windows中默认的用户目录是根据环境变量HOME和USERPROFILE来确定的,sbcl是HOME变量,CCL是USERPROFILE变量,如果不指定则默认为C:\Documents and Settings\XXX(windows XP).
    2,SBCL和CCL的主目录由环境变量SBCL_HOME和CCL_DEFAULT_DIRECTORY指定.
    3,使用方法:直接将git clone到本地,修改bat和reg文件对应的路径即可.

在此要非常感谢@FreeBlues不厌其烦的回答我的问题http://www.oschina.net/question/251613_119214.经测试是因为我手动创建.ccl-init.lisp时在初始化文件第一行加入了(format t (user-homedir-pathname))导致,改为(princ "Clozure CL init file dir is ")
(prin1 (user-homedir-pathname))即可 (卧操,这么低级的错误)


© 著作权归作者所有

共有 人打赏支持
闲庭风
粉丝 1
博文 4
码字总数 1288
作品 0
郑州
高级程序员
Clozure Common Lisp 接口数据库创建操作指导(教程翻译)

Clozure Common Lisp 接口数据库创建操作指导(教程翻译) 原文地址:网络: http://trac.clozure.com/ccl/browser/trunk/source/examples/cocoa/interface-databases/本地: file:///ccl-1.8-dar......

FreeBlues
2013/08/07
0
0
Common Lisp 函数 require 和 provide 源代码分析

Common Lisp 函数 require 和 provide 源代码分析 涉及文件:l1-files.lispl1-init.lisp作者:FreeBlues2013-08-19 目录 0)1)2)2.1)2.2)2.3) 0 概述(id:0) require 使用场景, 使用 quicklisp ......

FreeBlues
2013/08/19
0
0
emacs的lisp开发插件--slime

slime是在 emacs下开发common lisp的插件,现在支持一下 common lisp 方言 CMU Common Lisp (CMUCL) Steel Bank Common Lisp (SBCL) Clozure CL (a.k.a. OpenMCL) LispWorks Allegro CL CLI......

匿名
2011/09/04
3.5K
0
开源 Common Lisp 实现--Clozure CL

Clozure CL,曾用名 OpenMCL,也叫CCL。它是一款高性能的开源 Common Lisp 实现, 可运行于以下平台: Mac OS X 10.4 and later (PowerPC and x86) Linux (PowerPC and x86) FreeBSD 6.x and ......

匿名
2011/09/04
3.2K
0
CLozure CL 多线程函数使用实例

CLozure CL 多线程函数使用实例 一、简单介绍 Common Lisp 的标准没有对多线程的描述,因此各种 CL 实现都给出了自己的多线程功能函数,具体细节有所不同,这里大致讲解一下 Clozure CL 的多...

FreeBlues
2013/02/04
0
5

没有更多内容

加载失败,请刷新页面

加载更多

arts-week10

Algorithm 905. Sort Array By Parity - LeetCode Review Who’s Afraid of the Big Bad Preloader? 一文读懂前端缓存 一个网络请求3个步骤:请求,处理,响应,而前端缓存主要在请求处响应这两步...

yysue
今天
4
0
00.编译OpenJDK-8u40的整个过程

前言 历经2天的折腾总算把OpenJDK给编译成功了,要说为啥搞这个,还得从面试说起,最近出去面试经常被问到JVM的相关东西,总感觉自己以前学的太浅薄,所以回来就打算深入学习,目标把《深入理...

凌晨一点
今天
5
0
python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
6
2
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
158
0
Qt编写自定义控件属性设计器

以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用...

飞扬青云
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部