7 个不稳定版本 (3 个破坏性更新)
0.4.0 | 2023年11月16日 |
---|---|
0.3.0 | 2023年11月16日 |
0.2.2 | 2023年11月15日 |
0.2.0 | 2023年10月27日 |
0.1.5 | 2023年10月16日 |
#1784 in #api-bindings
66 每月下载量
用于 qcs
59KB
1.5K SLoC
libquil-sys
此包提供了 Rust 到 quilc
C 库的绑定。
如何构建
从源代码安装 SBCL
必须从源代码安装 SBCL 以确保你有可用的 libsbcl
共享库。
- 为启动目的,使用软件包管理器安装
sbcl
。 - 克隆仓库:
git clone --branch sbcl-2.2.0 git://git.code.sf.net/p/sbcl/sbcl
- 已知的标签
sbcl-2.2.0
可以正常工作。这些说明尚未针对较新版本进行测试。
- 在克隆的仓库内部:
sh make.sh && sh make-shared-library.sh
- 卸载
sbcl
的包管理器版本。 - 运行
sh install.sh
以安装编译后的sbcl
- 将
src/runtime/libsbcl.so
复制到/usr/local/lib/libsbcl.so
设置 Quicklisp
- 按照官方说明 安装 Quicklisp。
配置本地项目目录
Quicklisp 有一个 本地项目机制,我们将使用它来构建带有依赖项的 quilc
。默认情况下,此目录为 $HOME/quicklisp/local-projects
。如果您想使用不同的目录,请确保 $HOME/.sbclrc
包含以下内容(将 $LISP_WORKSPACE
替换为实际值)
;;; 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)))
#+quicklisp
(push "$LISP_WORKSPACE" ql:*local-project-directories*)
从现在开始,我们将把您选择的本地项目目录(无论是默认的还是其他),称为 $LISP_WORKSPACE
。
设置 Lisp 工作区
重要:上述 sbcl
文件夹不能在 workspace 文件夹中 -- 这会导致问题。
- 将以下仓库克隆到
$LISP_WORKSPACE
构建 quilc
注意:quilc
中的构建命令假定您正在 macOS 上运行,在其他系统上将会出错。
在 $LISP_WORKSPACE
中运行以下命令
make -C quilc
make -C quilc/lib
可选,运行测试
# Optional -- run tests
make -C quilc/tests/c # Builds executables to manually run
cp quilc/lib/libquilc.core quilc/lib/tests/c/
# MacOS
cp quilc/lib/libquilc.dylib quilc/lib/tests/c/
# *nix
cp quilc/lib/libquilc.so quilc/lib/tests/c/
echo "H 0" | quilc/lib/tests/c/compile-quil
构建和测试 libquil-sys
默认情况下,此库假定 quilc
在默认的 Quicklisp 本地项目目录中($HOME/quicklisp/local-projects
)。如果您为 quilc 定义了非默认的本地项目目录,您需要将 $QUILC_LIBRARY_PATH
设置为您构建 quilc 库的文件夹(包含 libquilc.dylib
的文件夹)。例如,
export QUILC_LIBRARY_PATH=$LISP_WORKSPACE/quilc/lib
然后,从本存储库的根目录
cp "$LISP_WORKSPACE/quilc/lib/libquilc.dylib" .
cp "$LISP_WORKSPACE/quilc/lib/libquilc.core" .
cargo test
依赖项
~1–8.5MB
~76K SLoC