objc-lisp-bridge:打造跨Objective-C和Lisp的GUI应用交互
需积分: 9 62 浏览量
更新于2024-12-26
收藏 42KB ZIP 举报
资源摘要信息:"objc-lisp-bridge是一个旨在让任意Lisp实现与Objective-C运行时进行交互的便携式阅读器和桥接器,特别是针对macOS平台的本地GUI应用程序开发。该项目利用了Common Lisp的CFFI(Common Foreign Function Interface)技术,以无需依赖特定Lisp实现的桥接功能来实现与Objective-C和Cocoa框架的交互。
描述中提到的CCL(Clozure Common Lisp)和LispWorks是两种不同的Common Lisp实现,它们已经拥有与Objective-C运行时交互的桥梁。objc-lisp-bridge项目的目标是提供一种更为通用的桥梁,该桥梁仅依赖于CFFI,使得任何支持CFFI的Lisp实现都能够创建本地的macOS图形用户界面。项目作者希望最终能够基于这个桥接器为McClim提供一个新的mac-native后端,但目前尚未确定是否能实现这一点。
objc-lisp-bridge的当前版本在CCL和LispWorks上表现良好,其中在SBCL上的兼容性约为95%,但存在一些问题导致窗口无法正常显示。作者没有在其他Lisp实现上进行测试,但要使其在其他实现上工作,需要在objc-runtime.lisp中进行一些修改,以便桥接代码能够获取到新Lisp实现的FFI类型信息。
安装objc-lisp-bridge的过程涉及以下步骤:
1. 克隆fwoar.lisputils项目,并将其放置在quicklisp可以识别的本地项目目录下,例如用户的quicklisp/local-projects目录下。
2. 同样地,克隆cffi项目,并将其与fwoar.lisputils项目放在同一位置。
objc-lisp-bridge的开发和维护还处在早期阶段,因此可能存在一些限制和未知问题。但是,随着项目的进一步开发,这个桥接器有望为macOS上的Lisp开发者提供更多的可能性,特别是在创建原生GUI应用程序方面。
objc-lisp-bridge项目还涉及了以下关键知识点和概念:
- Objective-C:一种面向对象的编程语言,广泛用于Apple的macOS、iOS等平台的应用程序开发。
- CFFI(Common Foreign Function Interface):一种在Common Lisp中使用的接口,允许程序员调用非Lisp库中的函数,即使用Lisp访问其他语言编写的库函数。
- LispWorks和CCL:两种不同的Common Lisp实现,它们提供了不同方式与Objective-C的桥接。
- Cocoa:一个由Apple开发的跨平台应用程序框架,用于开发macOS应用程序。
- SBCL(Steel Bank Common Lisp):一个高性能的开源Common Lisp实现。
- McClim:一个基于Common Lisp的图形用户界面库,其目标是与Cocoa框架集成,创建本地GUI应用程序。
- quicklisp:一个Common Lisp的库管理系统,用于自动下载和安装Common Lisp库。"
以上摘要信息基于给定文件信息,详细介绍了objc-lisp-bridge项目的背景、目标、安装过程以及相关技术概念。通过这些信息,我们可以了解objc-lisp-bridge为Lisp开发者提供的与Objective-C和macOS平台进行交互的能力,以及它所面临的挑战和未来发展的可能性。
152 浏览量
156 浏览量
124 浏览量
点击了解资源详情
2021-06-05 上传
2021-05-05 上传
2021-07-04 上传
198 浏览量
2021-07-10 上传
没名字的女人
- 粉丝: 35
- 资源: 4711
最新资源
- regextester.zip
- jquery窗帘样式顶部滑动下拉登陆窗口
- post-box
- video2hls:准备要与HLS流式传输的视频
- qmlmoment:QML 就绪的 moment.js 端口
- 我的问题解决:我在算法,数据结构等方面的研究历史
- mediapipe_app
- QuickXSS:使用Bash自动化XSS
- 学生信息管理系统代码.zip
- Desktop.zip
- Feed2Mail notifications-crx插件
- discovery-demo
- Python超级
- personal-site:在Firebase上托管的React网站展示了我的生活
- Generate to Lately-crx插件
- karma-webdriver-example:将 Karma 0.9.2 与 WebDriver 和 Sauce Labs 一起使用的示例项目