
On Sat, Nov 16, 2013 at 5:21 PM, FAU <fau@riseup.net> wrote:
(defmethod output-files ((operation compile-op) (component foo-file)) (let ((l (multiple-value-list (call-next-method)))) (apply #'values (mapcar #'(lambda (p) (make-pathname* :directory (append (pathname-directory p) (list # +foo1.0 "1.0" #+foo1.1 "1.1")) :defaults p)) (car l)) (cdr l))))
Inasmuch as I think that runtime conditionals should be used rather
I corrected it to your advice accordingly. (defmethod output-files ((operation compile-op) (component foo-file)) (multiple-value-bind (pathnames translatep) (call-next-method) (values (mapcar #'(lambda (p) (make-pathname* :directory (append (pathname-directory p) (list (cond ((featurep :foo1.0) "1.0") ((featurep :foo1.1) "1.1") (t (error "No foo feature found."))))) :defaults p)) pathnames) translatep))) On Sat, 2013-11-16 at 17:34 -0500, Faré wrote: than
compile-time conditionals wherever performance permits (see also featurep), your general scheme is valid. However, you can should be using (multiple-value-bind (pathnames translatedp) ... (values ...)) There are only two values returned in this protocol.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org When my contradictors' ideas aren't an incoherent mess I can easily disprove, I call them for the ideologists they are; but they are so dogmatic, they don't change their mind after I insult them.