文档章节

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

闲庭风
 闲庭风
发布于 2013/07/24 14:31
字数 584
阅读 494
收藏 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))即可 (卧操,这么低级的错误)


© 著作权归作者所有

共有 人打赏支持
上一篇: emacs在linux下设置
下一篇: git@osc很好用
闲庭风
粉丝 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
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 函数 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
开源 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

没有更多内容

加载失败,请刷新页面

加载更多

rabbitmq学习

使用docker安装rabbit docker run -d --hostname my-rabbit --name rabbit -p 8080:15672 rabbitmq:management--hostname:指定容器主机名称--name:指定容器名称-p:将mq端口号映射到本地...

元谷
16分钟前
0
0
想知道谁是你的最佳用户?基于Redis实现排行榜周期榜与最近N期榜

本文由云+社区发表 前言 业务已基于Redis实现了一个高可用的排行榜服务,长期以来相安无事。有一天,产品说:我要一个按周排名的排行榜,以反映本周内用户的活跃情况。于是周榜(按周重置更新...

腾讯云加社区
18分钟前
1
0
函数计算性能福利篇(二) —— 业务冷启动优化

继前一篇《函数计算性能福利篇——系统冷启动优化》,我们再来看看近期函数计算推出的 Initializer 功能之后,带来的一波高能性能优化成果。 背景 函数计算是一个事件驱动的全托管 serverle...

阿里云官方博客
24分钟前
1
0
开源版本说明

1527
26分钟前
2
0
Mysql经验-------持续更新

单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。 说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。

DoLo-lty
28分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部