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 |