On 10/7/11 Oct 7 -10:35 AM, Faré wrote: > On Fri, Oct 7, 2011 at 08:40, Zach Beane <[email protected]> wrote: >> Faré <[email protected]> writes: >> >>> Do we want to (a) leave run-shell-command half-broken on various >>> combination of OSes and implementations as soon as any argument needs >>> quoting, do we want to (b) use heavy artillery to solve the problem >>> correctly, or should we not just (c) delete this broken functionality >>> that obviously nobody can or should be relying on for anything >>> serious? >>> >>> My preference goes to (c) delete the damn thing (replacing the >>> function body by an error that suggests a good replacement), but only >>> if it doesn't create a quagmire for users. >> >> My preference is to leave it as-is. >> >>> Xach - would it be easy for you to test Quicklisp with a version of >>> ASDF without run-shell-command (or fmakunbound'ing it early on) and >>> see if anything breaks? >> >> Of Quicklisp projects, it breaks CommonQT, elephant, gsll, umlisp, and >> cl-gene-searcher. >> > You win, thanks to superior data. Thanks, Zach! > > My plan: > 1- declare the interface deprecated for now > 2- work with the authors of said software to migrate off of it. > 3- when no one is known to use it anymore, make it issue a warning at > compile and/or runtime. > 4- after a few versions, make it issue an error
I don't think that's a full solution, per my somewhat garbled email of last night. The problem is that we will end up with (defsystem foo (:defsystem-depends-on xcvb-run-program) ... system definition ... ) The problem is that unlike before, we can't have nice (defmethod PERFORM ((op my-op) (c my-component-class)) (run-shell-program ....)) Instead, we end up with the much nastier (defmethod PERFORM ((op my-op) (c my-component-class)) (funcall (intern (symbol-name #:fare-run-shell-program) :xcvb-runner ....))) I suppose if there is a one function-sized API, this won't be too bad, because we can just define (defun run-shell-command (&rest args) (apply (intern (symbol-name #:fare-run-shell-program) :xcvb-runner) ....)) once and then writing the PERFORM methods will be OK.... :DEFSYSTEM-DEPENDS-ON doesn't interact very gracefully with the package system.... Cheers, r _______________________________________________ asdf-devel mailing list [email protected] http://lists.common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel
