Re: db-sockets.asd patch and asdf question
Daniel Barlow <[email protected]>
| Newsgroups | gmane.lisp.cclan.general |
|---|---|
| Message-ID | <[email protected]> |
Miles Egan <[email protected]> writes: > It seems that asdf runs the gcc compilation step every time the > db-sockets system is loaded, whether it's necessary or not. I've come > up with the attached patch, which may or not make sense as a solution > to this problem. It just does a make-style timestamp comparison. Thanks for that patch, I'll merge that into the next db-sockets release. Actually, at some point I should generalise it slightly and lift the unix-dso stuff into asdf itself as a supported feature. > Am I correct in observing that asdf verifies that every component of a > system is built and up to date before loading the system? If so, is > this ultimately going to scale badly to large systems with lots of > files? Would it make any sense to explicitly distinguish build and > load operations and make the default load op a quicker op that assumes > the system is built? Yes, it does. I'm not sure how big a system has to be before this really starts breaking down, but it basically means a stat() call on each file in the system. The implementation may or may not be doing another stat() call of its own as part of LOAD so that it can warn about source file being newer than object file. My inclination is to leave things as they are until it proves to be an actual problem. For me the extra predictability of knowing that load-op will never stop unexpectedly in the middle of an operation, or decide arbitrarily to load source instead of binary, or other `interesting' behaviour, is worth the extra checks. Your mileage may vary, of course, and I'm happy to change my mind given input from people with really big systems. -dan -- http://ww.telent.net/cliki/ - Link farm for free CL-on-Unix resources _______________________________________________________________ Sponsored by: ThinkGeek at http://www.ThinkGeek.com/