feature suggestion/wish: ql:quickload with fresh rebuild (like asdf:load-op :force t)

291 views
Skip to first unread message

avodo...@gmail.com

unread,
Aug 3, 2012, 9:33:20 PM8/3/12
to quic...@googlegroups.com
Hello.

In my workflow I use (ql:quickload :my-project) to start development session
on my system, and to run the program on server after git pull.

ql:quickload makes sure dependencies are downloaded from internet
and frees me from care about installation.

But ql:quickload does not allow to ensure the libraries are freshly rebuild and
I sometimes have problems because of that, because ql:quickload inherits
issues like this https://bugs.launchpad.net/asdf/+bug/479522 from asdf:load-op
which is used in the ql:quickload implementation.

asdf:load-op allows to rebuild using :force t, but doesn't download dependencies
from Internet.

But I can not combine the two features and have them simultaneously -
download from Internet and recompilation.
It would be good if quicklisp allowed for this.

Even despite I understand the internals, that ql:quickload internally invokes asdf:load-op,
catches asdf:missing-dependency, downloads the missing libraries and allows the process to continue,
I don't see how to hook into the current version and enable fresh recompilation

 I can suggest two solutions:
- introduce the :force t parameter to ql:quickload
- allow user to provide a function to call instead of asdf:load-op.
  something like
        (ql:quickload :my-project :local-loader (lambda (name) (asdf:operate 'asdf:load-op name :force T))
        (ql:quickload :my-project :local-loader (lambda (name) (asdf:operate 'asdf:load-op name :force NIL))
  the function passed to :local-loader may signal 'missing-dependency

Best regards,
- Anton

Elias Mårtenson

unread,
Aug 4, 2012, 9:19:50 PM8/4/12
to quic...@googlegroups.com, avodo...@gmail.com
On Saturday, 4 August 2012 09:33:20 UTC+8, avodo...@gmail.com wrote:
 
But ql:quickload does not allow to ensure the libraries are freshly rebuild and
I sometimes have problems because of that, because ql:quickload inherits
issues like this https://bugs.launchpad.net/asdf/+bug/479522 from asdf:load-op
which is used in the ql:quickload implementation.

asdf:load-op allows to rebuild using :force t, but doesn't download dependencies
from Internet.

But I can not combine the two features and have them simultaneously -
download from Internet and recompilation.
It would be good if quicklisp allowed for this.

You can always work around the issue by simply deleting $HOME/.cache/common-lisp before you load the system. That's what I do when I suspect any problems and want to force a rebuild. 

David Lamkins

unread,
Aug 6, 2012, 1:42:04 PM8/6/12
to quic...@googlegroups.com
That's what I do, too. It's a pretty big hammer to apply in the general case, though. It'd be nice to have a way to do minimal recompilation (a la make), if possible.


On Sat, Aug 4, 2012 at 6:19 PM, Elias Mårtenson <lok...@gmail.com> wrote:

You can always work around the issue by simply deleting $HOME/.cache/common-lisp before you load the system. That's what I do when I suspect any problems and want to force a rebuild. 



--
"Far out in the uncharted backwaters of the unfashionable end of the Western Spiral arm of the Galaxy lies a small unregarded yellow sun. Orbiting this at a distance of roughly ninety-eight million miles is an utterly insignificant little blue-green planet whose ape-descended life forms are so amazingly primitive that they still think programming in Java is a pretty neat idea."

 -- With apologies to Douglas Adams, who I like to think would have appreciated this.


http://soundcloud.com/davidlamkins
http://reverbnation.com/lamkins
http://reverbnation.com/lcw
http://lamkins-guitar.com/
http://lamkins.net/
http://successful-lisp.com/

Elias Mårtenson

unread,
Aug 6, 2012, 10:22:06 PM8/6/12
to quic...@googlegroups.com, da...@lamkins.net
On Tuesday, 7 August 2012 01:42:04 UTC+8, David Lamkins wrote:

On Sat, Aug 4, 2012 at 6:19 PM, Elias Mårtenson <lok...@gmail.com> wrote:

You can always work around the issue by simply deleting $HOME/.cache/common-lisp before you load the system. That's what I do when I suspect any problems and want to force a rebuild. 
 
That's what I do, too. It's a pretty big hammer to apply in the general case, though. It'd be nice to have a way to do minimal recompilation (a la make), if possible.

Well, Lisp compiles to fast it's rarely a problem for me. :-) 
Reply all
Reply to author
Forward
0 new messages