On 8/4/06, Timofei Shatrov <[EMAIL PROTECTED]> wrote: > Currently ASDF is not very user-friendly. I can think about at least two > improvements: a separate function instead of (asdf:oos 'asdf:load-op :foo), > and asking for path when some library is not found. I tried to write a > function that solves both of these problems: > > (defun load-lib (library) > "Loads a library using ASDF" > (handler-bind ((asdf:missing-component > (lambda (c) > (print-object c *standard-output*) > (format t "~%~%Enter the path of its possible location:") > (let ((path (read-line))) > (if (zerop (length path)) > (invoke-restart 'abort-request) ;or (abort) > ;in SLIME-less > ;environment > (progn > (push path asdf:*central-registry*) > (invoke-restart 'asdf:retry))))))) > (asdf:oos 'asdf:load-op library))) > > Unfortunately it doesn't work, because there is no RETRY restart available at > the time of searching through *central-registry*. At the time the > missing-component error occurs there is no way to fix it, without patching up > asdf.lisp. There must be another way, for example through > *system-definition-search-functions*. Or maybe it's better to encourage ASDF > developers to provide retry restart for the missing-component error? > > > > _______________________________________________ > Gardeners mailing list > [email protected] > http://www.lispniks.com/mailman/listinfo/gardeners >
I'd love the second change to work, that would be a great help. I think you've hit upon the biggest problem with asdf, at least from my use of it. When it goes wrong the error messages are not very helpful, and it doesn't help you to correct your error. You have to pretty much go into the source to figure out what happened. This is especially a problem when using cygwin, which introduces all kinds of pathname problems for you to deal with. If the base version of asdf-install was cygwin knowledgable that would be great. Justin _______________________________________________ Gardeners mailing list [email protected] http://www.lispniks.com/mailman/listinfo/gardeners
