common-lisp-controller v4
For the moment only a proposal:

After considering what got done with v3 of clc I've come to the following conclusions:

  1. dpkg's actions cannot be depended on. It will configure lisps when clc itself it not yet configured and vice-versa. So clc should work even when not configured (and no daemon is listening yet) or when the lisps seems configured but are not.
  2. when installing lisp libraries or implementations it is irritating to have to wait until the compile finishes.
  3. the error reporting could be better, but already it is very usefull IMHO
  4. the daemon idea works but is a little brittle
  5. the user's actions should be different from the installation of a library, so we can give priority to the user's request
  6. the using of a spool directory is difficult to manage, using a setuid program to safely add entries would be better
  7. better integration with asdf would be nice to have
  8. supporting non-debian systems would be nice
  9. overriding require is not good

So I propose the following broad idea's:

  1. We modify the clc-send-command program to always ask the daemon to do the work ASAP. This becomes then the only entry-point for user's requests via the lisp implementation or the command line.
  2. Building offline becomes the only mode of operation for installation and removal, and we create a new program clc-create-request to add requests to the queue directory. This program will be suid so we can remove the 777's from the spool directory.
  3. The only actions a lisp implementation would have to take to rebuild libraries is to register to the clc with the clc-create-request register on install and to remove all libraries on removal with clc-remove-implementation. The last program would remove all fasl files from that implementation.
  4. The implementation should of course still create a lisp core with clc installed and we continue to use the shell-script to do this.
  5. A library would just use clc-create-request add-library to add itself to clc, on removal just clc-remove-library . The last command would remove all fasl immediatly
  6. A cron-job would at night gather all the requests and rebuild the libraries
  7. I would hope implementations would give better debug output in case of problems...
  8. we would have to consider selinux

So we would simplify most code, and still keeping the bulk of code.

Comments?


common-lisp-controller