Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] [Patch] Repoman rewrite stage2 modularization conversion complete
Date: Tue, 15 Mar 2016 00:18:38
Message-Id: 56E754D3.5080308@gentoo.org
In Reply to: Re: [gentoo-portage-dev] [Patch] Repoman rewrite stage2 modularization conversion complete by Brian Dolbec
1 On 03/14/2016 10:52 AM, Brian Dolbec wrote:
2 > On Mon, 14 Mar 2016 10:22:11 -0700
3 > Zac Medico <zmedico@g.o> wrote:
4 >
5 >> On 03/14/2016 10:14 AM, Zac Medico wrote:
6 >>> On 03/05/2016 01:37 PM, Brian Dolbec wrote:
7 >>>
8 >>>> Zac, I'm done with code changes in the rewrite. Ready for a last
9 >>>> look before a merge. Can you have a look again? I did some
10 >>>> changes/fixes and rebased them in. Floppym hasn't reported any
11 >>>> more bugs, so I think it's ready for broader testing in a
12 >>>> release. Then we can work on moving all the test data to a
13 >>>> separate file in the tree or downloaded...
14 >>>
15 >>> The dynamic_data stuff in Scanner is a little hard to follow. Then
16 >>> it calls dynamic_data.update(rdata), is there any chance that the
17 >>> update operation might clobber something that shouldn't have been
18 >>> clobbered?
19 >>
20 >> To clarify my question, suppose that one function returns {'foo':
21 >> True} and another one returns {'foo', False}, so now there first
22 >> {'foo': True} setting is forgotten. Is that going to be a problem?
23 >
24 > No, as stated in my other reply. There are only a few things that are
25 > modified. Mostly as I made a new module, following the original
26 > order the checks were run. As data was discovered missing it was added
27 > to dynamic_data from the previous check that supplied it to the Scanner
28 > class. So, only data needed later was passed back to update the
29 > dynamic_data.
30 >
31 > Also all those checks originally ran in one huge 1k LOC loop with
32 > another slightly smaller ebuild loop nested inside it. So all those
33 > variables were subject to change already by previous code run. In the
34 > stage1 rewrite, I/we did the same thing in creating the separated
35 > checks classes. After the check was done, only the data required was
36 > brought back into the primary loop.
37 >
38
39 I've found what may be a real instance of the kind of problem I was
40 worried about. The 'allvalid' key is set in both
41 pym/repoman/modules/scan/ebuild/isebuild.py and
42 pym/repoman/modules/scan/ebuild/ebuild.py, and its non-trivial for me to
43 determine whether this is a real problem or not.
44 --
45 Thanks,
46 Zac

Replies