HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
quil-lang
qvm
Common Lisp2019–2024
quil-lang / qvm

qvm

The high-performance and featureful Quil simulator.

3Distinct people
17Mentions
0Explicit recommenders
454GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The high-performance and featureful Quil simulator.

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year17 dated mentions

Observed mentions: 2019-02-28 19:04:06 UTC to 2024-10-16 16:44:28 UTC.

024682019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2024

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC808
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC312
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC303
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202

What Hacker News says

17 sources
I think personally that Coalton and the stuff its built on is crazy cool. Coalton is a little library you add to your Lisp, but, to quote the third link here: "In terms of its type system, Coalton’s closest cousin is Haskell." So Lisp's dynamism with all sorts of advanced typing. QVM, a Quantum Virtual Machine https://github.com/quil-lang/qvm Quilc, an "advanced optimizing compiler" for Quil https://github.com/quil-lang/quilc Coalton, "a statically typed functional programming language built with Common Lisp." https://coalton-lang.github.io/20211010-introducing-coalton/
In Hofstadter on Lisp (1983)
A state of the art compiler [1] in quantum computing has not been rewritten in its 8 years of existence. This is accompanied by a quantum computer simulator that runs on the world's biggest supercomputers. [2] Multiple quantum computing companies use Common Lisp, and their software was written in a fraction of the time and resources taken for competing companies to do the same in either C++ or Python. Things like Coalton [3] really make Lisp stand out. What other language is able to add Haskell-quality types to their language? Lisp is not popular, so it doesn't have as much labor going into it, but for the work that does, remarkable results are achieved. Lisp does have a lot of the dubiously claimed power, but that power still requires reasonable engineering work to achieve—work that a lot of hobbyists are unwilling to do in their free 4
Read the rest
In Common Lisp Community Survey 2024 Results
This is demonstrative of one of the great superpowers of Lisp: that you can write mini native code compilers—without knowing a lick of assembly. (But knowing assembly certainly helps you optimize the heck out of it.) More specifically, you can compile syntax (of your choosing) into performant, low-level Lisp code, which the Lisp compiler can then compile into efficient machine code. To do this, you need no extra tools, no intermediate files, no compiler hooks, no virtual machines, no byte codes, and no non-standard or non-portable features. It has been built in to Lisp since at least the 1980s. Making miniature "JIT" compilers is also a technique a quantum simulator in Lisp [0a, 0b] uses to optimize quantum gate operations. It analyzes the quantum gate matrix and, on the fly, compiles it into optimized numerical Lisp code that is equivale
Read the rest
nt to that matrix acting on vectors of tensor product spaces (i.e., super huge arrays of complex double floats). Using another language would require me to do arduous things like write assembly code or learn a library like LibJIT [1] which may not even interface well with my host language. Other simulators out there written in C use huge hand-unrolled loops with comments like // THIS CODE WAS GENERATED, DO NOT TOUCH and/or in-line assembly code, and still can't optimize specific matrix shapes and structures, or do algebraic simplifications to eliminate work altogether. The regex library FTA is a great, and clean, example of a long standing practice of compiling regexen, except it doesn't use any fancy VMs or any fancy JITs, just "when you see this regex, automatically turn it into this Common Lisp code, and let the Lisp compiler handle the rest." [0a] https://github.com/quil-lang/qvm [0b] COMPILE-OPERATOR: https://github.com/quil-lang/qvm/blob/master/src/compile-gat... [1] https://www.gnu.org/software/libjit/
In One-more-re-nightmare – A fast regex compiler in Common Lisp
Rigetti Computing is a company that builds quantum computers. We have used Common Lisp in production at Rigetti Computing for 4 years both in cloud deployment as well as for a downloadable SDK. Common Lisp is used to build what is currently the best free optimizing compiler for quantum computing [1, 2] as well as one of the most flexible quantum computer simulators [3]. They’re both open source, so you can actually see for yourself how we version, deploy as binaries, and deploy in Docker containers. > If you are using lisp in production for non-trivial cases, do these issues still exist? Before getting into the specifics, any large, non-trivial product that customers use will need tweaking. Especially languages that have runtimes, including languages like C. This is usually a result of leaky abstractions that just have to be dealt with in
Read the rest
The Real World (TM). > * poor ecosystem of libraries - few gems, most other half-baked You have libraries for most things you need. Some are lacking, like in scientific computing. But all your usual stuff to glue things together is there and works. Some people confuse “half-baked” with “no commits for 5 years”. Lisp libraries are older than many in vogue languages, and Lisp doesn’t change, so “5 years no commits” shouldn’t be worrisome. At Rigetti, the biggest weight we had to pull that we wouldn’t have needed to do in, say, Python, is bind to a bunch of FORTRAN code, specifically LAPACK. That was a pain because you need to do FFI with complex double floats. * poor community coordination The community all agrees on one thing: Lisp is standardized. Lisp lacks a sort of “centralized community” like Go or Clojure. I like to think that Common Lisp is more “democratic”. We have a “constitution” (the Common Lisp standard) that we all agree on and we all make our own contributions atop that. With that said, #lisp on Freenode is attentive. SBCL, for example, responds to bug reports almost immediately. Several library ecosystems are kept up to date, etc. > * Dependency management limitations with quicklisp With Quicklisp, I personally realized a lot of other dependency management solutions are overblown and don’t actually solve problems. Maybe QL gets away with it because the ecosystem is smaller than others. Xach, the creator of QL, does a lot of community diligence for free to ensure things work. For production code, I’ve had 0 issues. > * poor support for json We use YASON [4] and it works fine. > * poor support for async This is true now but wasn’t true years ago. Lisp implementers have not been interested in implementing a runtime supporting async programming. Little in the Common Lisp language itself prohibits it. Before the world of threads and SMP, Lisp implementers did implement async runtimes. Why aren’t Lisp implementers interested in async? I’m not sure. Maybe they see it as a passing fad? > * have to restart the server every 20 days because of some memory leak Memory leaks can happen but they’re usually the programmer’s fault for not understanding symbol interning, weak pointers, or finalizers. Writing long-running applications does require know-how. > * hack to tune GC I don’t consider it hacking. In SBCL we tune the GC to our application. This seems reasonable; different programs have different allocation patterns. But you wouldn’t need to do this out of the box. > is there a way you can quantify effort is resolving them, and if yes, what is it? Big applications that are customer products require care and feeding. The benefits of writing in Lisp in the first place largely outweigh some of the extra work needed to productionize it. I will say that writing production Common Lisp code is greatly benefited by having at least one experienced Lisper on the team. If a team would, for some reason, write an application in Lisp but not really have a good understanding of the language, then productionizing and hardening will be difficult. > and, finally, if you had to re-do your project, would you chose lisp or something else? Common Lisp allows something that never existed before (a completely automatic, optimizing quantum compiler) to exist. If Lisp weren’t there, that wouldn’t exist. My parting advice is this: The biggest difficulty in writing an application is to actually write it. It takes a lot of hard work to get requirements, listen to feedback, articulate a direction, etc. In Common Lisp, SBCL or LispWorks or whatever else, dumping an executable is so easy and you can have a deployable “production app” in 5 minutes. So the good news is that you won’t be held up trying to figure out how to dockerize your Python app. I definitely agree that before embarking, doing an objective and relevant comparative analysis would be good (we did this at Rigetti), but ultimately you just need to sit down and write. Almost every programming problem is solvable these days with enough glue and elbow grease. I wouldn’t be too worried. [1] https://arxiv.org/abs/2003.13961 [2] https://github.com/rigetti/quilc [3] https://github.com/rigetti/qvm [4] https://github.com/phmarek/yason
In Ask HN: Production Lisp in 2020?
A Common Lisp project that uses SIMD (specifically AVX2) is the Quantum Virtual Machine [1]. It’s a quantum computer simulator. Here [2] is part of the source that has the SIMD instructions. It’s cool that with using SBCL, an implementation of Common Lisp, you can write compartmentalized assembly very easily in an otherwise extremely high-level language. [1] https://github.com/rigetti/qvm [2] https://github.com/rigetti/qvm/blob/master/src/impl/sbcl-avx...
In SIMD instructions
Alongside the development of quantum hardware, which has ever-growing qubit numbers and ever-increasing fidelities and coherence times, there’s also software that’s getting more and more sophisticated. Most quantum computer providers have their own APIs for programming their machines [1,2,3]. Python seems to be the popular choice for these APIs. But one piece of software I’ve been particularly interested in, and indeed contribute to, is Rigetti’s open source optimizing compiler called quilc [4,4’], which is a sort of a GCC/Clang for quantum computers. It’s the only open-source compiler of it’s kind. They also have a high-performance simulator [5], which is used sort of like a debugger. (Perhaps surprisingly, both are written in Common Lisp.) What is very useful about the compiler is that it is retargetable, and can compile for even IBM’s
Read the rest
architectures of tomorrow. You just give it an “isa” at the command line describing how many qubits it has, how they’re connected, and which gates they support, and quilc will happily compile and optimize your program for that architecture. [1] Rigetti’s pyQuil https://github.com/rigetti/pyquil [2] IBM’s Qiskit https://github.com/Qiskit/qiskit [3] Google’s Cirq https://github.com/quantumlib/Cirq [4] quilc https://github.com/rigetti/quilc [4’] quilc at FOSDEM https://youtu.be/qwfMzzKJDXI [5] quantum virtual machine https://github.com/rigetti/qvm
In IBM will soon launch a 53-qubit quantum computer
This is the document [0] we maintain for new Lisp hackers at Rigetti, where we use Common Lisp to build open source quantum software development tools. Following that, here’s the rundown of some basic Lisp nomenclature and how to edit in Emacs [1]. The article isn’t bad, but it also doesn’t provide you with a sustainable way to develop Lisp; interactive and incremental development together form a great proportion of value of using the language in the first place. [0] https://github.com/rigetti/qvm/blob/master/doc/lisp-setup.md [1] https://github.com/rigetti/qvm/blob/master/doc/editing-and-r... (PRs are welcome!)
In Getting Started with Lisp in 2019
We use Common Lisp to build compilers and simulators for quantum computers at Rigetti [0,1]. I wouldn’t consider the development stagnant. SBCL makes regular releases, including huge improvements (e.g., ported to risc v) and bug fixes. It’s easy to find commercial support for Common Lisp as well. I love Scheme and Common Lisp both, but CL is quite a workhorse when it comes to difficult, professional work on teams. [0] https://github.com/rigetti/quilc [1] https://github.com/rigetti/qvm
In SBCL – Past, Present, Future [pdf]

Showing the 15 most recent of 17 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.