Patch by Josh Elsasser, lp#629144. Previously, if a clisp 2.49 host was used, the build failed during make-host-1 in src/code/cross-sap.lisp with several "redefining SETF expander" errors. The same *suppress-check-redefinition* fix used in make-host-2 is enough to placate clisp and allow the build to finish successfully.
Moved flag processing as far "inward" as possible when dealing with compile-stem, reducing the amount of redundant code for parsing out and passing along boolean keywords based on the presence or absence of a flag and eliminating some of the keyword arguments to compile-stem. Added a "mode" parameter to compile-stem to enable determining the correct compile-file function based on the combination of mode and flags, further simplifying the interface. Added new functions for determining the source and object pathnames for a stem, fixing a longstanding KLUDGE in host-load-stem, consolidating the three instances of code to compute an object pathname and the two instances of code to compute a source pathname and eliminating the rest of the keyword arguments to compile-stem.