1 |
On Tue, 24 Feb 2009 18:16:54 +0100 |
2 |
Luca Barbato <lu_zero@g.o> wrote: |
3 |
> > You're doubling the number of files that have to be read for an |
4 |
> > operation that's almost purely i/o bound. On top of that, you're |
5 |
> > introducing a whole bunch of disk seeks in what's otherwise a nice |
6 |
> > linear operation. |
7 |
> |
8 |
> I see words, not numbers. |
9 |
|
10 |
Number: double. That's a '2 times'. |
11 |
|
12 |
> >>> That is not how metadata checks work. |
13 |
> >> Explain how they work, regen works that way... |
14 |
> > |
15 |
> > If metadata is valid, ebuilds aren't opened at all. An optimal |
16 |
> > implementation can slurp up the entire directory in one go and then |
17 |
> > start pulling out cache entries as it needs them, not having to go |
18 |
> > back to the ebuild directory or read its contents at all. Then it |
19 |
> > can open and read cache files in a carefully selected order to |
20 |
> > avoid having to do any more opens than necessary. |
21 |
> |
22 |
> So? if the cache is valid then you don't have to source them at all. |
23 |
> If you have to regen it, well you have to read everything. |
24 |
|
25 |
You don't know whether the cache is valid until you know the EAPI. It |
26 |
only works currently because EAPIs don't change inherit behaviour. |
27 |
|
28 |
> >>> By parsing the ebuilds you're talking doubling the number of file |
29 |
> >>> reads required to get the job done, and massively increasing the |
30 |
> >>> number of seeks required. |
31 |
> >> Apparently it doesn't impact anything. |
32 |
> > |
33 |
> > Please show the patch you created (for Paludis, since Portage |
34 |
> > doesn't yet do a lot of the optimisations it could here) that |
35 |
> > demonstrates this. |
36 |
> |
37 |
> Paludis isn't portage. |
38 |
|
39 |
So you have patches for Portage? Please show them. |
40 |
|
41 |
> >>> But that isn't even the main issue. The main issue is that even if |
42 |
> >>> you retroactively pretend that all ebuilds are in a format they're |
43 |
> >>> not, and ignore the breakage, and then wait for a year for package |
44 |
> >>> managers to try to parse your new format, you *still* can't change |
45 |
> >>> name or versioning rules. |
46 |
> >> why? when portage would breanch if I put an ebuild with a wacky |
47 |
> >> version AND there is a valid cache for that telling its eapi 99 ? |
48 |
> > |
49 |
> > Because it has to parse that version. Also, the package manager |
50 |
> > can't tell whether or not a cache entry is valid if it doesn't |
51 |
> > recognise the EAPI in the cache entry. |
52 |
> |
53 |
> unknown isn't unsupported? |
54 |
|
55 |
Huh? Please explain what you mean. |
56 |
|
57 |
> >>> Again, these are all things that have been discussed at length |
58 |
> >>> previously. Please either come up with a legitimate technical |
59 |
> >>> objection, or admit that you've seen the light. |
60 |
> >> the glep doesn't show any of those nor reference to it, as I said |
61 |
> >> before, do your homework and probably more people will be happier |
62 |
> >> with your proposals. |
63 |
> > |
64 |
> > Why should it? The C++ standard doesn't explain why you should use |
65 |
> > it instead of Java... |
66 |
> |
67 |
> In fact many people do wonderful things with java and many more just |
68 |
> do over engineered mess with C++? |
69 |
|
70 |
Your trolling is going rapidly downhill. |
71 |
|
72 |
-- |
73 |
Ciaran McCreesh |