quil-lang/quilc

Distributing QUILC

stylewarning opened this issue · 0 comments

Overall, the idea is to distribute QUILC in the following way:

  • Add an entry-point to SBCL runtime to load a FASL after Lisp initialization. Get that upstreamed if possible.
  • Get symbol resolution on Windows working in SBCL.
  • Make libsbcl on Windows (x64), Linux (x64), Mac (x64) in Conda Forge (aka "CF"). Initial plan is to have the DLL runtime and a base core file.
  • Implement FASL loading DLLs (stub DLL + a monolithic FASL).
  • Deploy libsbcl as well as an SBCL binary (so that shared libraries can be built) to CF so that it is installable.
  • Write documentation on how to install it.
  • Get QUILC, QVM, and MAGICL to be buildable as monolithic FASLs.
  • Review and clean up the QUILC GitHub Actions ("CI")
  • Prepare QUILC for "real world" use, i.e., disable debugger, have an "error handling story" (TM), and validate initial library functionality with users.
  • Understand how to capture the DLL/etc. runtime dependencies of QUILC (e.g. BLAS, LAPACK, etc.)
  • Implement build and deploy for LibQUILC.dll on CF. (Maybe not the binary to start?)
  • Revisit the QUILC readme.

Follow-on work (not in the purview of this issue) includes:

  • Embedding the core file in libsbcl
  • M{1,2} support for all of the above
  • Embedding FASL files in the DLL
  • Consider more robust ways of loading duplicated fasl files (maybe use ASDF?)
  • Same stuff as above, but for the QVM