git: 2acd0a90b812 - main - lang/quilc: New port: Optimizing Quil compiler (for quantum computing)

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 02 Aug 2022 07:49:54 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=2acd0a90b8126751f7ceffa5b43f5e8c16710f56

commit 2acd0a90b8126751f7ceffa5b43f5e8c16710f56
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-08-02 07:49:21 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-08-02 07:49:52 +0000

    lang/quilc: New port: Optimizing Quil compiler (for quantum computing)
---
 lang/Makefile                               |   1 +
 lang/quilc/Makefile                         |  78 ++++++++++++++++
 lang/quilc/Makefile.deps                    | 133 ++++++++++++++++++++++++++++
 lang/quilc/distinfo                         | 133 ++++++++++++++++++++++++++++
 lang/quilc/files/build-log-to-makefile-deps |  34 +++++++
 lang/quilc/files/cc                         |   3 +
 lang/quilc/files/patch-Makefile             |  11 +++
 lang/quilc/pkg-descr                        |  11 +++
 8 files changed, 404 insertions(+)

diff --git a/lang/Makefile b/lang/Makefile
index 85bb2f1c1b62..7b0c397e3d0c 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -293,6 +293,7 @@
     SUBDIR += qmasm
     SUBDIR += qscheme
     SUBDIR += quickjs
+    SUBDIR += quilc
     SUBDIR += racket
     SUBDIR += racket-minimal
     SUBDIR += ratfor
diff --git a/lang/quilc/Makefile b/lang/quilc/Makefile
new file mode 100644
index 000000000000..99d24a4f8476
--- /dev/null
+++ b/lang/quilc/Makefile
@@ -0,0 +1,78 @@
+PORTNAME=	quilc
+DISTVERSIONPREFIX=	v
+DISTVERSION=	1.26.0
+CATEGORIES=	lang # quantum-computing
+DIST_SUBDIR=	${PORTNAME}-${DISTVERSION} # many files, some are unversioned
+EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Optimizing Quil compiler (for quantum computing)
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+BUILD_DEPENDS=	curl:ftp/curl \
+		sbcl:lang/sbcl \
+		cppzmq>0:net/cppzmq
+LIB_DEPENDS=	libblas.so:math/blas \
+		libffi.so:devel/libffi \
+		liblapack.so:math/lapack
+
+USES=		fortran gmake localbase pkgconfig
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	quil-lang
+
+BINARY_ALIAS=	cc=${FILESDIR}/cc \
+		gfortran=gfortran${GCC_DEFAULT} \
+		git=false
+
+PLIST_FILES=	bin/quilc
+
+#
+# In order to update dependencies:
+# 1. set MAINTAINER_MODE=yes
+# 2. make clean build
+# 3. set MAINTAINER_MODE=no
+# 4. make clean makesum
+#
+
+MAINTAINER_MODE=	no
+
+.if (${MAINTAINER_MODE} == "yes")
+do-build:
+	# build, download dependencies during build, and collect build log with URLs in it
+	@cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${TARGET_ALL} 2>&1 | tee -a ${WRKDIR}/build.log
+	# convert build.log to Makefile.deps
+	@${FILESDIR}/build-log-to-makefile-deps ${WRKDIR}/build.log > Makefile.deps
+.else
+.  include <Makefile.deps>
+
+MASTER_SITES=	${MASTER_SITES_DEPS}
+DISTFILES=	${DISTFILES_DEPS}
+
+QL_DIR=		${WRKDIR}/quicklisp
+
+post-extract:
+	# create directories
+	@${MKDIR} \
+		${QL_DIR} \
+		${QL_DIR}/dists/quicklisp \
+		${QL_DIR}/dists/quicklisp/software
+	# copy files
+	@${CP} ${DISTDIR}/${DIST_SUBDIR}/asdf.lisp ${QL_DIR}
+	@${CP} ${DISTDIR}/${DIST_SUBDIR}/setup.lisp ${QL_DIR}
+	@${CP} ${DISTDIR}/${DIST_SUBDIR}/releases.txt ${QL_DIR}/dists/quicklisp
+	@${CP} ${DISTDIR}/${DIST_SUBDIR}/systems.txt ${QL_DIR}/dists/quicklisp
+	# extract archives
+	@cd ${QL_DIR} && ${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/quicklisp.tar
+	# extract tarballs
+.  for t in ${DISTFILES_DEPS:C/:.*//:M*.tgz}
+	@cd ${QL_DIR}/dists/quicklisp/software && ${TAR} xzf ${DISTDIR}/${DIST_SUBDIR}/${t}
+.  endfor
+	# fixups: same effect as https://github.com/cffi/cffi/pull/332
+	@${REINPLACE_CMD} -e 's|:openbsd "libffi.so"|:freebsd "libffi.so"|' ${QL_DIR}/dists/quicklisp/software/cffi_0.24.1/libffi/libffi.lisp
+
+.endif
+
+.include <bsd.port.mk>
diff --git a/lang/quilc/Makefile.deps b/lang/quilc/Makefile.deps
new file mode 100644
index 000000000000..06996cb7e5cf
--- /dev/null
+++ b/lang/quilc/Makefile.deps
@@ -0,0 +1,133 @@
+MASTER_SITES_DEPS= \
+http://beta.quicklisp.org/archive/alexa/2018-08-31/:alexa_20180831_git_tgz \
+http://beta.quicklisp.org/archive/alexandria/2022-07-07/:alexandria_20220707_git_tgz \
+http://beta.quicklisp.org/archive/babel/2020-09-25/:babel_20200925_git_tgz \
+http://beta.quicklisp.org/archive/bordeaux-fft/2015-06-08/:bordeaux_fft_20150608_http_tgz \
+http://beta.quicklisp.org/archive/bordeaux-threads/2022-07-07/:bordeaux_threads_v0_8_8_tgz \
+http://beta.quicklisp.org/archive/cffi/2021-04-11/:cffi_0_24_1_tgz \
+http://beta.quicklisp.org/archive/chipz/2022-02-20/:chipz_20220220_git_tgz \
+http://beta.quicklisp.org/archive/chunga/2022-03-31/:chunga_20220331_git_tgz \
+http://beta.quicklisp.org/archive/cl+ssl/2022-07-07/:cl_ssl_20220707_git_tgz \
+http://beta.quicklisp.org/archive/cl-abstract-classes/2019-03-07/:cl_abstract_classes_20190307_hg_tgz \
+http://beta.quicklisp.org/archive/cl-algebraic-data-type/2019-10-07/:cl_algebraic_data_type_20191007_git_tgz \
+http://beta.quicklisp.org/archive/cl-base64/2020-10-16/:cl_base64_20201016_git_tgz \
+http://beta.quicklisp.org/archive/cl-fad/2022-02-20/:cl_fad_20220220_git_tgz \
+http://beta.quicklisp.org/archive/cl-grnm/2018-01-31/:cl_grnm_20180131_git_tgz \
+http://beta.quicklisp.org/archive/cl-heap/2013-03-12/:cl_heap_0_1_6_tgz \
+http://beta.quicklisp.org/archive/cl-messagepack/2020-10-16/:cl_messagepack_20201016_git_tgz \
+http://beta.quicklisp.org/archive/cl-permutation/2021-12-09/:cl_permutation_20211209_git_tgz \
+http://beta.quicklisp.org/archive/cl-ppcre/2022-02-20/:cl_ppcre_20220220_git_tgz \
+http://beta.quicklisp.org/archive/cl-syslog/2019-02-02/:cl_syslog_20190202_git_tgz \
+http://beta.quicklisp.org/archive/cl-yacc/2010-10-06/:cl_yacc_20101006_darcs_tgz \
+http://beta.quicklisp.org/archive/closer-mop/2022-07-07/:closer_mop_20220707_git_tgz \
+http://beta.quicklisp.org/archive/command-line-arguments/2021-08-07/:command_line_arguments_20210807_git_tgz \
+http://beta.quicklisp.org/archive/drakma/2022-07-07/:drakma_v2_0_9_tgz \
+http://beta.quicklisp.org/archive/flexi-streams/2022-02-20/:flexi_streams_20220220_git_tgz \
+http://beta.quicklisp.org/archive/global-vars/2014-11-06/:global_vars_20141106_git_tgz \
+http://beta.quicklisp.org/archive/hunchentoot/2020-06-10/:hunchentoot_v1_3_0_tgz \
+http://beta.quicklisp.org/archive/ieee-floats/2022-02-20/:ieee_floats_20220220_git_tgz \
+http://beta.quicklisp.org/archive/interface/2019-03-07/:interface_20190307_hg_tgz \
+http://beta.quicklisp.org/archive/ironclad/2022-02-20/:ironclad_v0_57_tgz \
+http://beta.quicklisp.org/archive/iterate/2021-05-31/:iterate_release_b0f9a9c6_git_tgz \
+http://beta.quicklisp.org/archive/local-time/2022-07-07/:local_time_20220707_git_tgz \
+http://beta.quicklisp.org/archive/lparallel/2016-08-25/:lparallel_20160825_git_tgz \
+http://beta.quicklisp.org/archive/magicl/2021-04-11/:magicl_v0_9_1_tgz \
+http://beta.quicklisp.org/archive/md5/2021-06-30/:md5_20210630_git_tgz \
+http://beta.quicklisp.org/archive/metering/2020-02-18/:metering_20200218_git_tgz \
+http://beta.quicklisp.org/archive/mt19937/2011-02-19/:mt19937_1_1_1_tgz \
+http://beta.quicklisp.org/archive/optima/2015-07-09/:optima_20150709_git_tgz \
+http://beta.quicklisp.org/archive/parse-float/2020-02-18/:parse_float_20200218_git_tgz \
+http://beta.quicklisp.org/archive/policy-cond/2020-04-27/:policy_cond_20200427_git_tgz \
+http://beta.quicklisp.org/archive/puri/2020-10-16/:puri_20201016_git_tgz \
+http://beta.quicklisp.org/archive/pzmq/2021-05-31/:pzmq_20210531_git_tgz \
+http://beta.quicklisp.org/archive/queues/2017-01-24/:queues_20170124_git_tgz \
+http://beta.quicklisp.org/archive/qvm/2021-06-30/:qvm_v1_17_2_tgz \
+http://beta.quicklisp.org/archive/rfc2388/2018-08-31/:rfc2388_20180831_git_tgz \
+http://beta.quicklisp.org/archive/rpcq/2022-07-07/:rpcq_v3_10_0_tgz \
+http://beta.quicklisp.org/archive/salza2/2021-10-20/:salza2_2_1_tgz \
+http://beta.quicklisp.org/archive/slime/2022-02-20/:slime_v2_27_tgz \
+http://beta.quicklisp.org/archive/split-sequence/2021-05-31/:split_sequence_v2_0_1_tgz \
+http://beta.quicklisp.org/archive/static-vectors/2021-06-30/:static_vectors_v1_8_9_tgz \
+http://beta.quicklisp.org/archive/trivial-backtrace/2020-06-10/:trivial_backtrace_20200610_git_tgz \
+http://beta.quicklisp.org/archive/trivial-benchmark/2022-07-07/:trivial_benchmark_20220707_git_tgz \
+http://beta.quicklisp.org/archive/trivial-features/2021-12-09/:trivial_features_20211209_git_tgz \
+http://beta.quicklisp.org/archive/trivial-garbage/2021-12-30/:trivial_garbage_20211230_git_tgz \
+http://beta.quicklisp.org/archive/trivial-gray-streams/2021-01-24/:trivial_gray_streams_20210124_git_tgz \
+http://beta.quicklisp.org/archive/trivial-utf-8/2022-02-20/:trivial_utf_8_20220220_git_tgz \
+http://beta.quicklisp.org/archive/usocket/2022-03-31/:usocket_0_8_4_tgz \
+http://beta.quicklisp.org/archive/uuid/2020-07-15/:uuid_20200715_git_tgz \
+http://beta.quicklisp.org/archive/yason/2022-07-07/:yason_20220707_git_tgz \
+http://beta.quicklisp.org/asdf/3.2.1/:asdf_lisp \
+http://beta.quicklisp.org/client/2021-02-11/:setup_lisp \
+http://beta.quicklisp.org/client/2021-02-13/:quicklisp_tar \
+http://beta.quicklisp.org/client/:quicklisp_sexp \
+http://beta.quicklisp.org/dist/:quicklisp_txt \
+http://beta.quicklisp.org/dist/quicklisp/2022-07-08/:releases_txt \
+http://beta.quicklisp.org/dist/quicklisp/2022-07-08/:systems_txt \
+
+DISTFILES_DEPS= \
+alexa-20180831-git.tgz:alexa_20180831_git_tgz \
+alexandria-20220707-git.tgz:alexandria_20220707_git_tgz \
+babel-20200925-git.tgz:babel_20200925_git_tgz \
+bordeaux-fft-20150608-http.tgz:bordeaux_fft_20150608_http_tgz \
+bordeaux-threads-v0.8.8.tgz:bordeaux_threads_v0_8_8_tgz \
+cffi_0.24.1.tgz:cffi_0_24_1_tgz \
+chipz-20220220-git.tgz:chipz_20220220_git_tgz \
+chunga-20220331-git.tgz:chunga_20220331_git_tgz \
+cl+ssl-20220707-git.tgz:cl_ssl_20220707_git_tgz \
+cl-abstract-classes-20190307-hg.tgz:cl_abstract_classes_20190307_hg_tgz \
+cl-algebraic-data-type-20191007-git.tgz:cl_algebraic_data_type_20191007_git_tgz \
+cl-base64-20201016-git.tgz:cl_base64_20201016_git_tgz \
+cl-fad-20220220-git.tgz:cl_fad_20220220_git_tgz \
+cl-grnm-20180131-git.tgz:cl_grnm_20180131_git_tgz \
+cl-heap-0.1.6.tgz:cl_heap_0_1_6_tgz \
+cl-messagepack-20201016-git.tgz:cl_messagepack_20201016_git_tgz \
+cl-permutation-20211209-git.tgz:cl_permutation_20211209_git_tgz \
+cl-ppcre-20220220-git.tgz:cl_ppcre_20220220_git_tgz \
+cl-syslog-20190202-git.tgz:cl_syslog_20190202_git_tgz \
+cl-yacc-20101006-darcs.tgz:cl_yacc_20101006_darcs_tgz \
+closer-mop-20220707-git.tgz:closer_mop_20220707_git_tgz \
+command-line-arguments-20210807-git.tgz:command_line_arguments_20210807_git_tgz \
+drakma-v2.0.9.tgz:drakma_v2_0_9_tgz \
+flexi-streams-20220220-git.tgz:flexi_streams_20220220_git_tgz \
+global-vars-20141106-git.tgz:global_vars_20141106_git_tgz \
+hunchentoot-v1.3.0.tgz:hunchentoot_v1_3_0_tgz \
+ieee-floats-20220220-git.tgz:ieee_floats_20220220_git_tgz \
+interface-20190307-hg.tgz:interface_20190307_hg_tgz \
+ironclad-v0.57.tgz:ironclad_v0_57_tgz \
+iterate-release-b0f9a9c6-git.tgz:iterate_release_b0f9a9c6_git_tgz \
+local-time-20220707-git.tgz:local_time_20220707_git_tgz \
+lparallel-20160825-git.tgz:lparallel_20160825_git_tgz \
+magicl-v0.9.1.tgz:magicl_v0_9_1_tgz \
+md5-20210630-git.tgz:md5_20210630_git_tgz \
+metering-20200218-git.tgz:metering_20200218_git_tgz \
+mt19937-1.1.1.tgz:mt19937_1_1_1_tgz \
+optima-20150709-git.tgz:optima_20150709_git_tgz \
+parse-float-20200218-git.tgz:parse_float_20200218_git_tgz \
+policy-cond-20200427-git.tgz:policy_cond_20200427_git_tgz \
+puri-20201016-git.tgz:puri_20201016_git_tgz \
+pzmq-20210531-git.tgz:pzmq_20210531_git_tgz \
+queues-20170124-git.tgz:queues_20170124_git_tgz \
+qvm-v1.17.2.tgz:qvm_v1_17_2_tgz \
+rfc2388-20180831-git.tgz:rfc2388_20180831_git_tgz \
+rpcq-v3.10.0.tgz:rpcq_v3_10_0_tgz \
+salza2-2.1.tgz:salza2_2_1_tgz \
+slime-v2.27.tgz:slime_v2_27_tgz \
+split-sequence-v2.0.1.tgz:split_sequence_v2_0_1_tgz \
+static-vectors-v1.8.9.tgz:static_vectors_v1_8_9_tgz \
+trivial-backtrace-20200610-git.tgz:trivial_backtrace_20200610_git_tgz \
+trivial-benchmark-20220707-git.tgz:trivial_benchmark_20220707_git_tgz \
+trivial-features-20211209-git.tgz:trivial_features_20211209_git_tgz \
+trivial-garbage-20211230-git.tgz:trivial_garbage_20211230_git_tgz \
+trivial-gray-streams-20210124-git.tgz:trivial_gray_streams_20210124_git_tgz \
+trivial-utf-8-20220220-git.tgz:trivial_utf_8_20220220_git_tgz \
+usocket-0.8.4.tgz:usocket_0_8_4_tgz \
+uuid-20200715-git.tgz:uuid_20200715_git_tgz \
+yason-20220707-git.tgz:yason_20220707_git_tgz \
+asdf.lisp:asdf_lisp \
+setup.lisp:setup_lisp \
+quicklisp.tar:quicklisp_tar \
+quicklisp.sexp:quicklisp_sexp \
+quicklisp.txt:quicklisp_txt \
+releases.txt:releases_txt \
+systems.txt:systems_txt \
diff --git a/lang/quilc/distinfo b/lang/quilc/distinfo
new file mode 100644
index 000000000000..a2a9f7b1bb2c
--- /dev/null
+++ b/lang/quilc/distinfo
@@ -0,0 +1,133 @@
+TIMESTAMP = 1659410972
+SHA256 (quilc-1.26.0/alexa-20180831-git.tgz) = 64656047b0ffca7113a4ce159fb883f21080c8e9ed585d02d08af46db042e82c
+SIZE (quilc-1.26.0/alexa-20180831-git.tgz) = 11101
+SHA256 (quilc-1.26.0/alexandria-20220707-git.tgz) = 8e6173120de8786c7ae0fefba8102d82620fac42e9aade954af9135e0870d6b1
+SIZE (quilc-1.26.0/alexandria-20220707-git.tgz) = 56838
+SHA256 (quilc-1.26.0/babel-20200925-git.tgz) = d14984a29d7717a7a8b6c61b259eab20c615edf0a0c8ff6252f41f0eb9a8f2c2
+SIZE (quilc-1.26.0/babel-20200925-git.tgz) = 273336
+SHA256 (quilc-1.26.0/bordeaux-fft-20150608-http.tgz) = 19fbdb364d340fb9eab738b499da8e2c124533086098d7d93d2fc5fc01ee5d70
+SIZE (quilc-1.26.0/bordeaux-fft-20150608-http.tgz) = 13857
+SHA256 (quilc-1.26.0/bordeaux-threads-v0.8.8.tgz) = 37ef6d10cc5bdb81e4ed44c2f996211459e629607a77fd465a8b1c730dbcb2d2
+SIZE (quilc-1.26.0/bordeaux-threads-v0.8.8.tgz) = 3029861
+SHA256 (quilc-1.26.0/cffi_0.24.1.tgz) = 1023dc97baa0f4c8648c3039f6d147978b37a13310869d914b92469b335128c7
+SIZE (quilc-1.26.0/cffi_0.24.1.tgz) = 262118
+SHA256 (quilc-1.26.0/chipz-20220220-git.tgz) = 3ad896594cb5d76623ff3a9a6d14c95a98f72f8b54ac7868eb1683f7a2ca70c8
+SIZE (quilc-1.26.0/chipz-20220220-git.tgz) = 37175
+SHA256 (quilc-1.26.0/chunga-20220331-git.tgz) = be6868859b2d3d08e0765059072692b135da96c4f95ebd05de109d069a7a1a4c
+SIZE (quilc-1.26.0/chunga-20220331-git.tgz) = 20800
+SHA256 (quilc-1.26.0/cl+ssl-20220707-git.tgz) = 2f052e6b75457d4742510e713d7ed6497ae25a57ccabc8e4f26f02bb2f3d8b87
+SIZE (quilc-1.26.0/cl+ssl-20220707-git.tgz) = 78599
+SHA256 (quilc-1.26.0/cl-abstract-classes-20190307-hg.tgz) = bde103dacb7d9a2dd3cc29fa3d63c37cdd71cdc0a4dc06e5b72a112049a1155c
+SIZE (quilc-1.26.0/cl-abstract-classes-20190307-hg.tgz) = 4719
+SHA256 (quilc-1.26.0/cl-algebraic-data-type-20191007-git.tgz) = 4e6be187a5e651ab02f5918df5341e7827df1ee26dee06b8e0e2111f37605e7d
+SIZE (quilc-1.26.0/cl-algebraic-data-type-20191007-git.tgz) = 7396
+SHA256 (quilc-1.26.0/cl-base64-20201016-git.tgz) = 3ff50faf5ddccd409f8954eb70c2d4e76329cc916f070de95f79c7ecf6d3a2f1
+SIZE (quilc-1.26.0/cl-base64-20201016-git.tgz) = 10373
+SHA256 (quilc-1.26.0/cl-fad-20220220-git.tgz) = 91faa900b70d369b8646d6d8b5b560d5fe10c10985132290278f8a9c094f4224
+SIZE (quilc-1.26.0/cl-fad-20220220-git.tgz) = 25285
+SHA256 (quilc-1.26.0/cl-grnm-20180131-git.tgz) = 1f98f2c34f8492b8b28b7750caa47d277633e5216f313f7d4dff07508a5c7870
+SIZE (quilc-1.26.0/cl-grnm-20180131-git.tgz) = 9511
+SHA256 (quilc-1.26.0/cl-heap-0.1.6.tgz) = 914cb5000f9961610d3a2516bf80254251e55b916ce09b8d08bf5b710f587098
+SIZE (quilc-1.26.0/cl-heap-0.1.6.tgz) = 26979
+SHA256 (quilc-1.26.0/cl-messagepack-20201016-git.tgz) = f777df7c1cbbe1238f96d297a2c8bdb1ff57ed29d3557f0194c26cb4819e6c32
+SIZE (quilc-1.26.0/cl-messagepack-20201016-git.tgz) = 11722
+SHA256 (quilc-1.26.0/cl-permutation-20211209-git.tgz) = cf17fa7c3d9b8b056cebd5a79fc3eaf299a82567e5ec72c2bb291371d70e5116
+SIZE (quilc-1.26.0/cl-permutation-20211209-git.tgz) = 59123
+SHA256 (quilc-1.26.0/cl-ppcre-20220220-git.tgz) = bbef645603181b6aa0691d2755dd9d1f9a87659cc000a871313970400f344593
+SIZE (quilc-1.26.0/cl-ppcre-20220220-git.tgz) = 157392
+SHA256 (quilc-1.26.0/cl-syslog-20190202-git.tgz) = f071aa8c3f341ece01d28d45f4bb758a05a9e42e8671baf5187dbbe44730ffcf
+SIZE (quilc-1.26.0/cl-syslog-20190202-git.tgz) = 14759
+SHA256 (quilc-1.26.0/cl-yacc-20101006-darcs.tgz) = e7ca1cbf28512f7ed42aa747f28d5b823cf1837eaf43cb30549edcac00ddd533
+SIZE (quilc-1.26.0/cl-yacc-20101006-darcs.tgz) = 18774
+SHA256 (quilc-1.26.0/closer-mop-20220707-git.tgz) = d7a77d31e3f4d1b40f8d51865937e24b02825f9f6edae5a2519a9f3d798c8fe8
+SIZE (quilc-1.26.0/closer-mop-20220707-git.tgz) = 23776
+SHA256 (quilc-1.26.0/command-line-arguments-20210807-git.tgz) = 939b3966e2887dd0b81bd1c3d051c42bce78c10fa32661263c9aa6c355fbf9bd
+SIZE (quilc-1.26.0/command-line-arguments-20210807-git.tgz) = 12294
+SHA256 (quilc-1.26.0/drakma-v2.0.9.tgz) = 0aa55f5b84c1126eaa0ee16ac04c165746721e0a6d3872d55b45c9692f008105
+SIZE (quilc-1.26.0/drakma-v2.0.9.tgz) = 74439
+SHA256 (quilc-1.26.0/flexi-streams-20220220-git.tgz) = a179543ed582f8920eb5363c1b3b48c45a3300f063d85601a5d668dfe8cfe706
+SIZE (quilc-1.26.0/flexi-streams-20220220-git.tgz) = 445922
+SHA256 (quilc-1.26.0/global-vars-20141106-git.tgz) = f294843bb31144034e1370df1634dd74f24e617e3abb9c00c17927eda2ae4f2e
+SIZE (quilc-1.26.0/global-vars-20141106-git.tgz) = 3581
+SHA256 (quilc-1.26.0/hunchentoot-v1.3.0.tgz) = 280e82a9681d850c757d6692bd5a182fbf47f8984b6d58cd7eb0094c4bbcf623
+SIZE (quilc-1.26.0/hunchentoot-v1.3.0.tgz) = 269060
+SHA256 (quilc-1.26.0/ieee-floats-20220220-git.tgz) = 6dd5d358fd1ea800f96a9a4b59895aa7b438a17e1c12e834e49605938c7b5145
+SIZE (quilc-1.26.0/ieee-floats-20220220-git.tgz) = 5274
+SHA256 (quilc-1.26.0/interface-20190307-hg.tgz) = 089841001cc54f93ee0d0ff9e92a3dd26e84df21d00f2ad48aca27c4ea363141
+SIZE (quilc-1.26.0/interface-20190307-hg.tgz) = 8186
+SHA256 (quilc-1.26.0/ironclad-v0.57.tgz) = 01269fd6887339099aa91906c171cbe45288c2a1f830df148d5c3fe1f434e6c2
+SIZE (quilc-1.26.0/ironclad-v0.57.tgz) = 1536896
+SHA256 (quilc-1.26.0/iterate-release-b0f9a9c6-git.tgz) = 9311c658a3950f7d5dd5d5aa4cebfe04f24b735c0560941be4b29f87550413bb
+SIZE (quilc-1.26.0/iterate-release-b0f9a9c6-git.tgz) = 346126
+SHA256 (quilc-1.26.0/local-time-20220707-git.tgz) = 9b4ba647731d85eb27231d176f66915da93e83bf06092b2e98b9da8de2c47cf6
+SIZE (quilc-1.26.0/local-time-20220707-git.tgz) = 779466
+SHA256 (quilc-1.26.0/lparallel-20160825-git.tgz) = 213bc89e6bbabe07fc3bcb21be1021b31f6f2ab1b7a2abb358a01ab9bee69c73
+SIZE (quilc-1.26.0/lparallel-20160825-git.tgz) = 78551
+SHA256 (quilc-1.26.0/magicl-v0.9.1.tgz) = 8df29997ccd25ecfa3a4d6a2e5921a9cf390ea4d112277dcb832067ea84051ef
+SIZE (quilc-1.26.0/magicl-v0.9.1.tgz) = 544160
+SHA256 (quilc-1.26.0/md5-20210630-git.tgz) = 9bfde89ed7e0464204b66b9b9f6699d4234aeabe1d00695d711d993bf8a2719a
+SIZE (quilc-1.26.0/md5-20210630-git.tgz) = 16719
+SHA256 (quilc-1.26.0/metering-20200218-git.tgz) = 8ce88ca2b8168b49254d5818993722a16f8801d230fa33f19b6a9ce8a2bacc67
+SIZE (quilc-1.26.0/metering-20200218-git.tgz) = 17062
+SHA256 (quilc-1.26.0/mt19937-1.1.1.tgz) = bb076745fc1f589f9f2a0f824d1f5340f6036920117901f67cbef008961986c7
+SIZE (quilc-1.26.0/mt19937-1.1.1.tgz) = 5551
+SHA256 (quilc-1.26.0/optima-20150709-git.tgz) = acc12418bedcf6de1ff8da0785a4cad3e76d2c17343d2a85e21835d16dc61e6f
+SIZE (quilc-1.26.0/optima-20150709-git.tgz) = 20345
+SHA256 (quilc-1.26.0/parse-float-20200218-git.tgz) = dcd976d9fb1913c1ffc78ba9b999915ae40a5799fc11a97db96043988e7d300b
+SIZE (quilc-1.26.0/parse-float-20200218-git.tgz) = 4653
+SHA256 (quilc-1.26.0/policy-cond-20200427-git.tgz) = c11f6cd9ef0287ebc67360ba617d285bbd2dad71b072f1273760fcfc085a9e81
+SIZE (quilc-1.26.0/policy-cond-20200427-git.tgz) = 5976
+SHA256 (quilc-1.26.0/puri-20201016-git.tgz) = fd3bd9acd2438eb89fcd0c8651b6f6b5d92f337872a8e59326a680666e7c079a
+SIZE (quilc-1.26.0/puri-20201016-git.tgz) = 29178
+SHA256 (quilc-1.26.0/pzmq-20210531-git.tgz) = b8d39746269834244f011bd03c380bfcb32ba62be0d196421f9262b9d4413243
+SIZE (quilc-1.26.0/pzmq-20210531-git.tgz) = 21958
+SHA256 (quilc-1.26.0/queues-20170124-git.tgz) = 59ad663177bf7fc8d5b86899768d9aa03ee019bc37925ec2a17edd08dc5a29a5
+SIZE (quilc-1.26.0/queues-20170124-git.tgz) = 8748
+SHA256 (quilc-1.26.0/qvm-v1.17.2.tgz) = 611fd623e58167889c6d2f35736f71f55e8b7b3aa21fa858e68978d489d99d36
+SIZE (quilc-1.26.0/qvm-v1.17.2.tgz) = 391434
+SHA256 (quilc-1.26.0/rfc2388-20180831-git.tgz) = 63fc3346a0bae5acd3c9d1cd658947f45a4f869b762a51d70882728169defbe4
+SIZE (quilc-1.26.0/rfc2388-20180831-git.tgz) = 12522
+SHA256 (quilc-1.26.0/rpcq-v3.10.0.tgz) = af2e025c18117429b9035301113131c655e31467d0cdd297f4a07787f74ee816
+SIZE (quilc-1.26.0/rpcq-v3.10.0.tgz) = 85557
+SHA256 (quilc-1.26.0/salza2-2.1.tgz) = 1da8fc6ee41372e0fbf2ac70af19f085bac68077dfb3bd3a77432525ea1abd7a
+SIZE (quilc-1.26.0/salza2-2.1.tgz) = 17080
+SHA256 (quilc-1.26.0/slime-v2.27.tgz) = 8e11d5e09843619be26d56674730c06bf82902d669d1c27ef55fc9b430d616ab
+SIZE (quilc-1.26.0/slime-v2.27.tgz) = 823006
+SHA256 (quilc-1.26.0/split-sequence-v2.0.1.tgz) = ca47962ad1e2275e9c9092abedb392459c93b25b1f6f0565057e715bfa6dd274
+SIZE (quilc-1.26.0/split-sequence-v2.0.1.tgz) = 11705
+SHA256 (quilc-1.26.0/static-vectors-v1.8.9.tgz) = 4402f9e86c1af25f3e56bc4c75ee337002635f54495aa67b7da758a2cd8fc406
+SIZE (quilc-1.26.0/static-vectors-v1.8.9.tgz) = 6982
+SHA256 (quilc-1.26.0/trivial-backtrace-20200610-git.tgz) = 7a665176bc3bd2f3e7d1c7888133498743182d2350d69f3a8e771baa20139f6a
+SIZE (quilc-1.26.0/trivial-backtrace-20200610-git.tgz) = 9230
+SHA256 (quilc-1.26.0/trivial-benchmark-20220707-git.tgz) = 9eeb0dab55a9b32c6c2aeebfa58ba6861afa30146792ac093f74cad79553b751
+SIZE (quilc-1.26.0/trivial-benchmark-20220707-git.tgz) = 15036
+SHA256 (quilc-1.26.0/trivial-features-20211209-git.tgz) = 14bf09e118dcba895734690c954d938a5d673502dea0ac634a6b6d6850a6abeb
+SIZE (quilc-1.26.0/trivial-features-20211209-git.tgz) = 11377
+SHA256 (quilc-1.26.0/trivial-garbage-20211230-git.tgz) = f71d2aea6645369739376291665862c4cd5b73dd75c2238b0991b63d620a7b83
+SIZE (quilc-1.26.0/trivial-garbage-20211230-git.tgz) = 10996
+SHA256 (quilc-1.26.0/trivial-gray-streams-20210124-git.tgz) = c68e05298ad46de2b48ac3c1d326617284f8701784d1623d4e4724620667986b
+SIZE (quilc-1.26.0/trivial-gray-streams-20210124-git.tgz) = 8046
+SHA256 (quilc-1.26.0/trivial-utf-8-20220220-git.tgz) = ef34140f1a07976d9ccef8ada652c7034ecc8be7aa045207f7a30a2eefffe8e0
+SIZE (quilc-1.26.0/trivial-utf-8-20220220-git.tgz) = 6976
+SHA256 (quilc-1.26.0/usocket-0.8.4.tgz) = 6c989292619971451d41fb6a61415e8a627def570d92bd7bf865fc43cb5f00e1
+SIZE (quilc-1.26.0/usocket-0.8.4.tgz) = 89771
+SHA256 (quilc-1.26.0/uuid-20200715-git.tgz) = a0e70fbfe72de65e06056197a206809108d1f5e2365fffd85a3b74f5a0c9b1fa
+SIZE (quilc-1.26.0/uuid-20200715-git.tgz) = 22210
+SHA256 (quilc-1.26.0/yason-20220707-git.tgz) = f9702bfec947a68d62477920368c492e06c049641c3ae33b4c05bad578b7012a
+SIZE (quilc-1.26.0/yason-20220707-git.tgz) = 30069
+SHA256 (quilc-1.26.0/asdf.lisp) = 51912f3f7c2c62c204f515d97346d56011528399bbf0a76a123318343ebd8bf0
+SIZE (quilc-1.26.0/asdf.lisp) = 643253
+SHA256 (quilc-1.26.0/setup.lisp) = 549fe3e7e0f2669daede98437c99cd60e02c0b8536d3d135c9aa9d346ed951b6
+SIZE (quilc-1.26.0/setup.lisp) = 5057
+SHA256 (quilc-1.26.0/quicklisp.tar) = a8a3c8c91b51dd185175abad4d7c3999ebb4e2520be5a6cee2127035ac6c87be
+SIZE (quilc-1.26.0/quicklisp.tar) = 266240
+SHA256 (quilc-1.26.0/quicklisp.sexp) = b4f515c5ed204d9fa4ea8637e60c0b12575609f450f26919dbfb835ee29933e0
+SIZE (quilc-1.26.0/quicklisp.sexp) = 839
+SHA256 (quilc-1.26.0/quicklisp.txt) = a35565dc8b703589959d16028221cc77b4035e77c2fbc8ecea36654ac4e983e7
+SIZE (quilc-1.26.0/quicklisp.txt) = 408
+SHA256 (quilc-1.26.0/releases.txt) = 16f745e54d542d636f7f8ad319304183be8930d57c2bd9824cc2f601431fb397
+SIZE (quilc-1.26.0/releases.txt) = 530186
+SHA256 (quilc-1.26.0/systems.txt) = 9e8c923497511a0bd743fd917c3afa7fd06da5398d4e57645cdd9872c6157815
+SIZE (quilc-1.26.0/systems.txt) = 403346
+SHA256 (quilc-1.26.0/quil-lang-quilc-v1.26.0_GH0.tar.gz) = 723112ec99d3203831b44da649bca9a05a28a626378c6844ddd6dbda5fe606b4
+SIZE (quilc-1.26.0/quil-lang-quilc-v1.26.0_GH0.tar.gz) = 1328203
diff --git a/lang/quilc/files/build-log-to-makefile-deps b/lang/quilc/files/build-log-to-makefile-deps
new file mode 100755
index 000000000000..dab08c647e37
--- /dev/null
+++ b/lang/quilc/files/build-log-to-makefile-deps
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+set -e
+
+BUILD_LOG=$1
+
+echo "MASTER_SITES_DEPS= \\"
+cat ${BUILD_LOG} | \
+	grep -a "^; Fetching #<URL " | \
+	sed -E 's|^; Fetching #<URL "|| ; s|">$$||' | \
+	sort | \
+	sed -E 's|^(http://beta.quicklisp.org/.*/)([^/]+)$$|\1:\2|' | \
+	sed -E 's|^(.+):([^:-\+\.]*)[-\+\.]([^:]*)$|\1:\2_\3|' | \
+	sed -E 's|^(.+):([^:-\+\.]*)[-\+\.]([^:]*)$|\1:\2_\3|' | \
+	sed -E 's|^(.+):([^:-\+\.]*)[-\+\.]([^:]*)$|\1:\2_\3|' | \
+	sed -E 's|^(.+):([^:-\+\.]*)[-\+\.]([^:]*)$|\1:\2_\3|' | \
+	sed -E 's|^(.+):([^:-\+\.]*)[-\+\.]([^:]*)$|\1:\2_\3|' | \
+	sed -E 's|^(.+):([^:-\+\.]*)[-\+\.]([^:]*)$|\1:\2_\3|' | \
+	sed -E 's|.*|& \\|'
+echo ""
+
+echo "DISTFILES_DEPS= \\"
+cat ${BUILD_LOG} | \
+	grep -a "^; Fetching #<URL " | \
+	sed -E 's|^; Fetching #<URL "|| ; s|">$$||' | \
+	sort | \
+	sed -E 's|^(http://beta.quicklisp.org/.*/)([^/]+)$$|\2:\2|' | \
+	sed -E 's|^(.+):([^:-\+\.]*)[-\+\.]([^:]*)$|\1:\2_\3|' | \
+	sed -E 's|^(.+):([^:-\+\.]*)[-\+\.]([^:]*)$|\1:\2_\3|' | \
+	sed -E 's|^(.+):([^:-\+\.]*)[-\+\.]([^:]*)$|\1:\2_\3|' | \
+	sed -E 's|^(.+):([^:-\+\.]*)[-\+\.]([^:]*)$|\1:\2_\3|' | \
+	sed -E 's|^(.+):([^:-\+\.]*)[-\+\.]([^:]*)$|\1:\2_\3|' | \
+	sed -E 's|^(.+):([^:-\+\.]*)[-\+\.]([^:]*)$|\1:\2_\3|' | \
+	sed -E 's|.*|& \\|'
diff --git a/lang/quilc/files/cc b/lang/quilc/files/cc
new file mode 100755
index 000000000000..75a2143a7ebd
--- /dev/null
+++ b/lang/quilc/files/cc
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+/usr/bin/cc -I/usr/local/include "$@"
diff --git a/lang/quilc/files/patch-Makefile b/lang/quilc/files/patch-Makefile
new file mode 100644
index 000000000000..cf1340e810d1
--- /dev/null
+++ b/lang/quilc/files/patch-Makefile
@@ -0,0 +1,11 @@
+--- Makefile.orig	2021-10-26 23:28:04 UTC
++++ Makefile
+@@ -2,7 +2,7 @@ COMMIT_HASH=$(shell git rev-parse --short HEAD)
+ LISP_CACHE ?= $(HOME)/.cache/common-lisp
+ RIGETTI_LISP_LIBRARY_HOME=../
+ SBCL_BIN=sbcl
+-SBCL=$(SBCL_BIN) --noinform --no-userinit --no-sysinit --non-interactive
++SBCL=$(SBCL_BIN) --dynamic-space-size 4096 --noinform --no-userinit --no-sysinit --non-interactive
+ QUICKLISP_HOME=$(HOME)/quicklisp
+ QUICKLISP_SETUP=$(QUICKLISP_HOME)/setup.lisp
+ QUICKLISP=$(SBCL) --load $(QUICKLISP_HOME)/setup.lisp \
diff --git a/lang/quilc/pkg-descr b/lang/quilc/pkg-descr
new file mode 100644
index 000000000000..5c01b43aadda
--- /dev/null
+++ b/lang/quilc/pkg-descr
@@ -0,0 +1,11 @@
+Quilc is an advanced optimizing compiler for the quantum instruction
+language Quil.
+
+Quil is the quantum instruction language, originally developed at
+Rigetti Computing. In Quil quantum algorithms are expressed using
+Quil's standard gates and instructions. One can also use Quil's
+DEFGATE to define new non-standard gates, and DEFCIRCUIT to build a
+named circuit that can be referenced elsewhere in Quil code (analogous
+to a function in most other programming languages).
+
+WWW: https://github.com/quil-lang/quilc