public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Florian Schmaus <flow@gentoo.org>
To: gentoo-dev@lists.gentoo.org, "Michał Górny" <mgorny@gentoo.org>
Subject: Re: [gentoo-dev] [PATCH 1/7] eclass/nuget.eclass: introduce new eclass
Date: Mon, 31 Jul 2023 16:20:02 +0200	[thread overview]
Message-ID: <04136d83-6043-848f-a2ec-a111bec19938@gentoo.org> (raw)
In-Reply-To: <47d02e5594b3c2be86e2a89966edab3dffae572f.camel@gentoo.org>


[-- Attachment #1.1.1: Type: text/plain, Size: 3487 bytes --]

On 31/07/2023 15.53, Michał Górny wrote:
> On Mon, 2023-07-31 at 12:49 +0200, Florian Schmaus wrote:
>> On 31/07/2023 11.32, Sam James wrote:
>>>
>>> Florian Schmaus <flow@gentoo.org> writes:
>>>
>>>> [[PGP Signed Part:Undecided]]
>>>> On 31/07/2023 07.02, Michał Górny wrote:
>>>>> On Sun, 2023-07-30 at 22:19 +0200, Florian Schmaus wrote:
>>>>>> Which problem are we solving by moving away from this towards a slightly
>>>>>> more verbose construct?
>>>>> The problem was that cargo.eclass ebuilds were taking significant
>>>>> time
>>>>> during cache regeneration and slowing down tools noticeably.  No fancy
>>>>> loops required, contrary to your great theory.
>>>>
>>>> Removing the $()/fork from go-modules.eclass reduced the source time
>>>> of a package from 2400 milliseconds to 236 milliseconds.
>>>>
>>>> Changing, for example net-p2p/arti-1.1.6, to use _cargo_set_crate_uris
>>>> reduces the source time from 44 milliseconds to 24 milliseconds.
>>>>
>>>> That is a win in relative reduction, but absolute its just 20
>>>> milliseconds. Cache regeneration is an embarrassingly parallel
>>>> problem. Therefore such a reduction should not matter much, assuming
>>>> you have some parallelism on the hardware level.
>>>
>>> Consistency matters
>>
>> Sure, I would be in favor of consistently using $(foo_uris).
>>
>> Especially since the performance gains of the variable-setting approach
>> are even lower than I first assumed. The cargo.eclass runs the function
>> that computes CARGO_CRATE_URIS now twice, which adds significantly more
>> overhead than the fork of $(foo_uris). See my patch to the ML.
>>
> 
> So, to summarize, your point is that after you've ignored the original
> thread

I can not say that I have actively ignored the thread. I am simply not 
aware of such a thread where we discussed that the variable-setting 
pattern has to be used instead of $(foo_uris).

I am sorry, I must have missed it. And it appears that my search-foo is 
not strong enough to dig it up. Could you please point me to the thread?

Or, are you maybe referring to the thread with your cargo.eclass patches 
from June, 16th? That seemed to be only about cargo.eclass and not about 
a tree-wide policy.


> and we've actually started switching stuff to ${xxx}, we should
> reopen the discussion and start moving everything back to $(xxx),

I never demanded that anything should be moved back to $(foo_uris). It's 
up to the eclass maintainer to decide which reasoning the follow and how 
they weight the arguments.


> even
> though you've proven yourself that it's less optimal ("but only
> a little!") and because... you prefer it? 

Optimality is not one-dimensional. Speed is not everything.

The $(foo_uri) pattern has slightly less code complexity and is slightly 
better readable. Moreover, given that the justification for moving away 
from it is negligible speedup, I prefer $(foo_uri).

Moving from $(foo_uri) to the variable-setting pattern ${foo_uri} appear 
to be a solution to a non-existing problem.

I have only expressed my opinion. I think that the variable-setting 
pattern is somewhat disadvantageous in this case.

However, this is not a hill for me to die on.


> Yes, that certainly makes
> sense.  It's surely a great way to run a distro is to undo optimizations
> 6 weeks later because you liked the old variant better.

Again, nobody asked for any undoing.

- Flow


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 17273 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 618 bytes --]

  reply	other threads:[~2023-07-31 14:20 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-30 14:26 [gentoo-dev] [PATCH 1/7] eclass/nuget.eclass: introduce new eclass Maciej Barć
2023-07-30 14:26 ` [gentoo-dev] [PATCH 2/7] eclass/dotnet-pkg-utils.eclass: " Maciej Barć
2023-07-30 19:34   ` Michał Górny
2023-07-30 20:04     ` Maciej Barć
2023-07-31  5:09       ` Michał Górny
2023-07-30 14:26 ` [gentoo-dev] [PATCH 3/7] eclass/dotnet-pkg.eclass: " Maciej Barć
2023-07-31  9:20   ` Thomas Bracht Laumann Jespersen
2023-07-30 14:26 ` [gentoo-dev] [PATCH 4/7] dev-dotnet/dotnet-runtime-nugets: new package Maciej Barć
2023-07-30 14:26 ` [gentoo-dev] [PATCH 5/7] app-eselect/eselect-dotnet: " Maciej Barć
2023-07-30 14:26 ` [gentoo-dev] [PATCH 6/7] dev-dotnet/dotnet-sdk-bin: update packaging mechanism Maciej Barć
2023-07-30 14:26 ` [gentoo-dev] [PATCH 7/7] dev-dotnet/dotnet-sdk-bin: drop old Maciej Barć
2023-07-30 19:30 ` [gentoo-dev] [PATCH 1/7] eclass/nuget.eclass: introduce new eclass Michał Górny
2023-07-30 20:01   ` Maciej Barć
2023-07-31  5:08     ` Michał Górny
2023-07-30 20:19   ` Florian Schmaus
2023-07-31  5:02     ` Michał Górny
2023-07-31  7:53       ` Florian Schmaus
2023-07-31  9:32         ` Sam James
2023-07-31 10:49           ` Florian Schmaus
2023-07-31 11:39             ` Sam James
2023-07-31 13:53             ` Michał Górny
2023-07-31 14:20               ` Florian Schmaus [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-07-16 12:38 Maciej Barć
2023-07-16 12:43 ` Sam James
2023-07-16 13:44   ` Maciej Barć
2023-07-16 13:40 ` Ulrich Mueller
2023-07-16 13:47   ` Maciej Barć

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=04136d83-6043-848f-a2ec-a111bec19938@gentoo.org \
    --to=flow@gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    --cc=mgorny@gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox