quil-lang / quilc

The optimizing Quil compiler.
Apache License 2.0
460 stars 72 forks source link

Preserve quicklisp preferences in build-app.lisp system loading #756

Closed braised-babbage closed 3 years ago

braised-babbage commented 3 years ago

The quilc build currently proceeds by first generating system-index.txt. The entries in this are used in build-app.lisp, which creates an ASDF system definition search function mapping system names to their paths as specified in system-index.txt. However, there is the possibility of conflicts: for example, if a system is present both in quicklisp local projects as well as one of the existing quicklisp dists. Previously, build-app.lisp overwrote earlier entries in the system table with later entries. This is contrary to the ordering of system-index.txt, which is by descending quicklisp preference. This PR maintains this preference ordering, and warns the user when conflicts are detected.