<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 16 Jan 2018, at 17:46, Sam Steingold <<a href="mailto:sds@gnu.org" class="">sds@gnu.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi,<br class=""><br class="">When I start CLISP with the full linking set (i.e., including all<br class="">possible extensions), I have 63 packages in (list-all-packages), and 37<br class="">of them (more than half!) comes from asdf (22 ASDF/* and 15 UIOP/*).<br class=""><br class="">I wonder if I am the only one unhappy about this.<br class="">In particular, has it ever been considered that it might be a good idea<br class="">to limit the number of packages asdf creates?<br class=""></div></div></blockquote></div><br class=""><div class=""><br class=""></div><div class="">Why? Does FIND-PACKAGE use a linear algorithm to find the packages?</div><div class=""><br class=""></div><div class="">This apparent multiplication of packages is due to the absence of hierarchical package names (and, granted, a tendency to over-modularize the code). But IMO, an implementation should be prepared to handle a big number of packages. Notably, use-package should be cheap, so packages used by a lot of other packages shouldn’t be costly either.</div><div class="">(On the other hand, FIND-SYMBOL in a package that uses a lot of other packages may be rather costly, either in time or in memory (cache)).</div><div class=""><br class=""></div><div class="">Note that users probably don’t use LIST-ALL-PACKAGES directly. In my case, I use com.informatimago.common-lisp.interactive.interactive:lspack ; I’ve never felt the need to filter out the packages very strongly (it uses string-match-p to select package names containing an optional substring), but it would be trivial to add filters to exclude package names that have some hierarchical structure in them (“sub-packages” delimited with “/“ or “.”).</div><div class=""><br class=""></div><div class="">-- </div><div class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">__Pascal J. Bourguignon__<br class=""><br class=""><br class=""></div></div>
</div>
<br class=""></body></html>