GNU bug report logs -
#38754
[PATCH 0/2] Speed up the derivation linter.
Previous Next
Reported by: Christopher Baines <mail <at> cbaines.net>
Date: Thu, 26 Dec 2019 17:34:01 UTC
Severity: normal
Tags: patch
Done: Christopher Baines <mail <at> cbaines.net>
Bug is archived. No further changes may be made.
Full log
Message #23 received at 38754 <at> debbugs.gnu.org (full text, mbox):
Hi Chris!
Christopher Baines <mail <at> cbaines.net> skribis:
> Ludovic Courtès <ludo <at> gnu.org> writes:
>
>> Christopher Baines <mail <at> cbaines.net> skribis:
>>
>>> + (with-store store
>>> + (parameterize
>>> + ((%lint-checker-store-connection store))
>>
>> Actually it means that now ‘guix lint’ systematically connects to the
>> daemon.
>
> I guess that's the effect, were you meaning this would make a better
> message in the commit?
I mean that it’s a visible change. Before, you could run all the
linters but this one without having a daemon running; now you need a
daemon up and running.
>> I wonder if we could arrange to open the connection lazily, and to
>> somehow carry state across linter invocations. Perhaps
>> ‘check-derivation’ should be monadic, with a field in <checker>
>> indicating that. Sounds complicated though.
>>
>> Thoughts?
>
> I did wonder if the code could somehow transparently be made more
> efficient. Quite often database clients manage a pool of connections,
> and when you perform a database operation, a connection from the pool is
> checked out, and then returned once you're finished. But as you say,
> this could be complicated. I think parameters can be set with
> connections, and I'm not quiet sure what the interface should be.
>
> I also did think about somehow passing the store connection in to the
> lint checker more explicitly, but I'm not sure how to generalise that.
There could be a <checker> field indicating either that (1) the
procedure takes an optional store parameter, or that (2) the procedure
is monadic in ‘%store-monad’.
#2 seems more complicated to implement that #1 though.
For #1, ‘guix lint’ could check whether:
(any checker-require-store? checkers)
is true, and if it is, it could open a connection and pass it on as
needed.
WDYT?
If that seems good to you, I guess you can go ahead with it (let’s just
not lose our hair on it!).
Thanks,
Ludo’.
This bug report was last modified 5 years and 53 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.