On 10 Jun 2020, at 6:09, Tim Bradshaw wrote:
I've since also discovered that find-system doesn't actually search for systems as best I can see: that search happens when the source registry is defined. So if you define the source registry at image start time, and there's a big tree to search, the image is slow to start: on my machine
(initialize-source-registry
'(:source-registry
:inherit-configuration
(:tree "/Local")))
makes the image take a great chunk of a minute to start (well, the first time: once the filesystem cache is warm it's better).
Yes, that was done by Faré a long time ago. I believe that this was done to handle very large lisp systems like the ones that ITA was building, but you are right that it doesn't make a great tradeoff for people with more modest systems.
If you like looking for systems on an as-needed basis, you can use asdf:*central-registry*
, the old school way of specifying where to look for systems, but note that it does not have the equivalent of :tree
. See below
Well, OK, I'm going to revive my antique hack which knew how to search for things based on their names and modify it so it will look for asd files, and make sure that that tree is not where ASDF searches by default so my images start quickly.
I have an equivalent to this hack, called asd-finder.
LMK off list if you would like a copy of it.
Also note that if you would like things to start more quickly, you can provide a smaller region for the :tree
search to cover, possibly by having two different regions (one for common libraries and one for the actual system you are loading), and searching two smaller trees instead of one big one.
Best,
R