: #-(or sbcl ccl) "an unexpected"
: " Common Lisp!~%"))
+It is not an error to include the name of an unrecognized Lisp system in
+the ~-L~ option: such names are simply ignored. This allows a script to
+declare support for unusual or locally installed Lisp systems without
+compromising its portability to sites where such systems are unknown, or
+which are still running older versions of ~runlisp~ which haven't been
+updated with the necessary configuration for those systems.
+
** Embedded options
If your script requires features of particular Lisp implementations
.TP
.BI "\-L" "\fR, " "\-\-accept-lisp=" sys , sys ,\fR\*(..
Use one of the named Lisp systems.
-Each
+The
.I sys
-must name a supported Lisp system;
-the names are separated by a comma
+names are separated by a comma
.RB ` , '
and/or one or more whitespace characters.
This option may be given more than once:
If a system is named more than once,
a warning is issued (at verbosity level 1 or higher),
and all but the first occurrence is ignored.
+System names which do not refer to known Lisp systems
+are silently ignored:
+otherwise, a script which supports an unusual Lisp system
+could never run at a site which doesn't have
+configuration runes for that Lisp system,
+even though they're useless
+if the system isn't actually installed.
.
.TP
.BI "\-c" "\fR, " "\-\-config-file=" conf
}
*tail = 0; lisps.tail = tail;
- /* Make sure that the acceptable and preferred Lisps actually exist. */
- check_lisps("acceptable", &accept, offsetof(struct lispsys, next_accept));
+ /* Make sure that the preferred Lisps actually exist. */
check_lisps("preferred", &prefer, offsetof(struct lispsys, next_prefer));
/* If there are no acceptable Lisps, then we'll take all of them. */
/* Build the final list of Lisp systems in the order in which we'll try
* them: first, preferred Lisps which are acceptable, and then acceptable
- * Lisps which aren't preferred.
+ * Lisps which are known but not preferred.
*/
tail = &order.head;
for (lisp = prefer.head; lisp; lisp = lisp->next_prefer)
if (lisp->f&LF_ACCEPT) { *tail = lisp; tail = &lisp->next_order; }
for (lisp = accept.head; lisp; lisp = lisp->next_accept)
- if (!(lisp->f&LF_PREFER)) { *tail = lisp; tail = &lisp->next_order; }
+ if ((lisp->f&LF_KNOWN) && !(lisp->f&LF_PREFER))
+ { *tail = lisp; tail = &lisp->next_order; }
*tail = 0;
/* Maybe dump out the various lists of Lisp systems we've collected. */