#quil #pyquil #api-bindings #quilc #libquil #qvm

sys libquil-sys

libquil 的高级绑定

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

Download history 9/week @ 2024-03-10 7/week @ 2024-03-17 1/week @ 2024-03-24 30/week @ 2024-03-31 8/week @ 2024-04-07 14/week @ 2024-04-14 3/week @ 2024-04-21 8/week @ 2024-05-05 1/week @ 2024-05-12 3/week @ 2024-05-19 5/week @ 2024-06-02 14/week @ 2024-06-09 36/week @ 2024-06-16 11/week @ 2024-06-23

66 每月下载量
用于 qcs

Apache-2.0

59KB
1.5K SLoC

libquil-sys

此包提供了 Rust 到 quilc C 库的绑定。

如何构建

从源代码安装 SBCL

必须从源代码安装 SBCL 以确保你有可用的 libsbcl 共享库。

  1. 为启动目的,使用软件包管理器安装 sbcl
  2. 克隆仓库: git clone --branch sbcl-2.2.0 git://git.code.sf.net/p/sbcl/sbcl
  • 已知的标签 sbcl-2.2.0 可以正常工作。这些说明尚未针对较新版本进行测试。
  1. 在克隆的仓库内部: sh make.sh && sh make-shared-library.sh
  2. 卸载 sbcl 的包管理器版本。
  3. 运行 sh install.sh 以安装编译后的 sbcl
  4. src/runtime/libsbcl.so 复制到 /usr/local/lib/libsbcl.so

设置 Quicklisp

  1. 按照官方说明 安装 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 文件夹中 -- 这会导致问题。

  1. 将以下仓库克隆到 $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