[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#38754] [PATCH 2/2] scripts: lint: Set the %link-checker-store-conne
From: |
Ludovic Courtès |
Subject: |
[bug#38754] [PATCH 2/2] scripts: lint: Set the %link-checker-store-connection parameter. |
Date: |
Tue, 31 Dec 2019 19:15:32 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Hi Chris!
Christopher Baines <address@hidden> skribis:
> Ludovic Courtès <address@hidden> writes:
>
>> Christopher Baines <address@hidden> 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’.
[bug#38754] [PATCH 0/2] Speed up the derivation linter., Ludovic Courtès, 2019/12/30