文章摘要
LispWorks是一款专有Common Lisp实现,自带IDE和CAPI GUI工具包,提供免费受限版本。其IDE相比Emacs和Slime提供更多图形化工具,如图形化步进器、追踪器、代码覆盖率浏览器和类浏览器,断点设置更便捷,并集成进程浏览器和函数调用图等功能。
文章总结
好的,这是根据您的要求,对原文进行中文重述和精简后的版本:
LispWorks 评测
LispWorks 是一个商业化的 Common Lisp 实现,自带集成开发环境(IDE)和独特的 CAPI GUI 工具包。它提供功能受限的免费版本。
本文主要探讨其 IDE 能为习惯使用 Emacs 和 Slime 的 Lisp 老手带来什么。简而言之,它提供了更多图形化工具,例如易于使用的图形化步进器、跟踪器、代码覆盖率浏览器和类浏览器。设置和使用断点也比在 Slime 上更简单。
LispWorks 还提供更集成的工具(如进程浏览器,可列出所有线程并对其进行停止、中断或调试),并以图表形式呈现信息(如函数调用图或窗口创建图)。
LispWorks 特性
- 支持 Windows、macOS、Linux 等平台的 32/64 位及 ARM 架构。
- CAPI 可移植 GUI 工具包:提供原生外观,并附带图形化“界面构建器”。
- 移动端运行时:支持 Android 和 iOS。
- 优化的应用交付:使用“树摇”技术移除未用代码,生成比开源实现更小的二进制文件。
- 可交付动态库。
- 提供 Java、Objective-C/Cocoa 接口。
- 支持 TCP/UDP 套接字(含 SSL 和 IPv6)、原生线程、Unicode 等。
LispWorks 被用于多个工业领域,例如音乐记谱软件 ScoreCloud 和作曲环境 OpenMusic。
免费版限制
- 堆大小限制:超出后程序会退出。
- 5小时会话时间限制:超时后程序退出,可能丢失未保存的工作。
- 无法构建可执行文件:
save-image、deliver等关键函数不可用。 - 不加载初始化文件:需要手动加载 Quicklisp 等配置。
许可模式
LispWorks 提供四个付费版本:爱好者版(可保存镜像)、爱好者DV版(可创建可执行文件)、专业版(用于商业/学术)和企业版(含更多模块)。爱好者版许可证约 750 美元,专业版翻倍。
IDE 编辑器
编辑器提供 TAB 补全、语法高亮和类 Emacs 的快捷键。但编辑体验略显“原始”,例如换行后不会自动缩进,自动补全不支持模糊匹配,且缺乏 Paredit(2021年已有新插件)或 Vim 模式等插件。其“跳转到定义”功能对内置 Lisp 符号无效,因为 LispWorks 未提供大量源码。
编辑器提供一个“已更改定义”标签页,可列出自上次保存或编译以来被重新定义的函数和方法。
快捷键
大部分快捷键与 Emacs 相似,但编译函数和缓冲区分别使用 C-S-c 和 C-S-b。一些有用功能(如清空 REPL)没有默认快捷键。不支持 Vim 模式。
监听器(REPL)
监听器与 Slime 略有不同:它会在输入时即时解析,因此输入错误包名会立刻报错。其交互式调试器既有文本形式也有图形元素,可在堆栈跟踪中双击函数名跳转到编辑器并高亮错误代码。监听器也提供类似 Slime 的辅助命令(如 :help)。
步进器与断点
步进器是 LispWorks 的亮点之一。可在编辑器中设置断点,执行时会弹出步进器窗口,显示源码、当前求值表达式、回溯变量和上下文监听器。它还提供非可视化的、基于 REPL 的步进器,可逐步查看表单求值过程和局部变量。
类浏览器
类浏览器可查看类的槽、父类、可用方法和类优先级列表。它由类层次结构、超/子类视图、槽、初始化参数、泛型函数和类优先级列表等多个窗格组成。函数窗格列出了所有适用方法,可双击跳转到源码。
函数调用浏览器
函数调用浏览器以图形方式展示函数的调用者和被调用者,并支持过滤和进一步检查。双击图中的函数可跳转到其源码。
进程浏览器
进程浏览器列出所有线程,支持按名称(支持正则)过滤,并可对线程进行停止、检查、监听或中断操作。
保存镜像
LispWorks 的镜像保存功能与 SBCL 不同:新镜像会成为默认核心,并保存 REPL 会话、窗口配置和线程状态,允许开发者从上次中断的地方继续工作。
其他功能
- 搜索文件:类似递归 grep,结果以图形窗口展示,支持双击跳转。
- 编译条件浏览器:将编译时的所有警告和错误集中显示,便于跟踪和修复。
从 Emacs 和 Slime 使用 LispWorks
有两种方式:1) 在 LispWorks 中启动 Swank 服务器,然后从 Emacs 连接;2) 创建一个无 GUI 的 LispWorks 镜像(仅限 Windows 和 Mac),并从 Slime 运行。
交付应用
LispWorks 的交付功能围绕 delivery 函数展开,其“树摇”技术可生成约 7MB 的小型二进制文件。交付的应用不包含 compile-file、save-image 等功能,因此无法在运行时修改代码。但 LispWorks 提供了远程调试客户端,允许在交付的应用上进行调试。
评论总结
没有有效评论