TODO for cl-launch as of 4.0.1.6

* When resuming from an image then dumping another, the INCLUDE_PATH
   becomes a very bad variable to look for the image.
   Include a test case and fix it.
   More generally, test with directory differences between image and
   other stuff.

* Maybe: add "dump from previous image" support for ECL?
   One limitation that cl-launch has on ECL (vs on e.g. SBCL)
   is the inability to "dump an image from a previous image".
   This could be achieved by hacking asdf:make-build
   (from ecl/contrib/asdf/asdf-ecl.lisp) to intercept in a
   (defmethod perform :before ((op monolithic-bundle-op) (c system)) ...)
   the arguments to the last call to c::builder, and to re-inject those
   arguments in same call them the next time around, assuming
   (which is somewhat fragile) that objects won't have been moved or
   deleted by then. I do not currently intend to support this feature
   in cl-launch, but will hopefully support it in XCVB that can do the
   bookkeeping on its side.
   NB: as in uiop/lisp-build:compile-file*, use
     (with-enough-pathname (input-file :defaults *base-build-directory*)

* Add support for the REPL and/or interpreting commands from stdin;
   it can be called explicitly with --repl
   or disabled explicitly with --no-repl,
   but it otherwise provided as the default fallback behavior
   when neither script nor build or execution command is provided.
   This brings behavior to par with /bin/sh.
   For extra brownies, automatically wrap inside rlwrap or some such
   if at the terminal (or conversely, disable GNU CLISP interactivity
   when not wanted).

* Convert cl-launch to a pure Lisp program, that can
   create a shell script for bootstrap purposes?
   Therefore, /usr/bin/cl can have fast startup,
   and not have to spawn an external program
   unless explicitly requested a non-default implementation.

* Support --dispatched-entry as from Xach's buildapp:
   dispatched-entry would populate a data structure bound to
   cl-launch::*dispatched-entry* and call a restart function
   cl-launch::dispatched-restart that uses (argv0) on supported
   platforms or via cl-launch launcher -- error out on unsupported platforms.
   http://www.xach.com/lisp/buildapp/

* Support these other options from Xach's buildapp?
   --load-path --asdf-path --asdf-tree --manifest-file --logfile

* Maybe add these SBCL-specific options, too?
   * --compress-core
     this one is trivial to add
   * --dynamic-space-size
     a lot of implementation have something like that.
     Abstract it away, or leave it implementation-specific?
     Can already be done with:
       --wrap 'SBCL_OPTIONS="--dynamic-space-size 1024"
   * --sbcl
     Can already be done with:
       --wrap 'SBCL="/opt/sbcl/bin/sbcl"
   * --core-only
     That's hard to add, not that useful, and may require hacking
     both uiop and cl-launch to get it right. Lots of pain, no gain.

* Better dependencies for --file and --eval
 ** Create an implicit in-memory system cl-launch/file-1, etc.,
    with a single file component, for each --file argument.
 ** Have it depend on all the previous systems and files, so dependencies work.
 ** Don't bother counting --eval, though, since there's no file to timestamp;
   Document for the user that they are on their own if a change in
   such --eval change the meaning of subsequent fasl files;
   they may have to manually clear their cache.
 ** Provide a --force option to force recompilation?
 ** on ECL, we still have to create temporary files for --eval,
   but we still don't want to have other systems depend on them
   except the top-level one.

