1 |
On Sunday 03 October 2004 22:34, Andrew Gaffney wrote: |
2 |
> This has been brought up before in the past and been shot down, but I'll |
3 |
> humor you. If support for this were to be added into Portage, there would |
4 |
No it wasn't. Discussion just felt off without leading to any conclusion as it |
5 |
happens quite often. Well, actually such discussions were happening multiple |
6 |
times in the past and while in some it may have felt like "shot down" in |
7 |
others it even went as far as being added to portage-ng features list ;). |
8 |
|
9 |
> be a few things to think about: |
10 |
> |
11 |
> 1) this will cause a performance hit no matter how it is done |
12 |
> 2) how will Portage know the difference between a package and another |
13 |
> sub-category when it is walking the tree? It could do something like |
14 |
Grouping both as they are basically the same. |
15 |
Directory walker is a pretty standard piece of code discussed in many text |
16 |
books for various languages. Python has explicit support for some basic |
17 |
dirwalker functionality in its standard library. |
18 |
|
19 |
As for distinguishing: in prior discussions there were calls to go the |
20 |
opposite route and flatten namespace. That is to get rid of categories |
21 |
altogether and rely solely on search. Thus one approach would be to make one |
22 |
pass accumulating all package names and then work off that (store path to |
23 |
ebuild dir in the cache for example). However that may not be optimal as this |
24 |
will disallow duplicate package names (which we *have* irrespectively of |
25 |
whether this is good or bad). |
26 |
|
27 |
A simpler and more efficient approach may be to simply prepend path to package |
28 |
name, possibly substituting '/' with some other separator if that's a |
29 |
problem. This will give a flat list of effective package names (that include |
30 |
all their categorization) which may even simplify further processing. |
31 |
Actually having a separate pass may be even more of an advantage as portage |
32 |
works off its cache for the most part anyway and this cache is created |
33 |
server-side already. Thus this change might even speed things up :) (well, |
34 |
not really, but shouldn't cause significant performance degradation either). |
35 |
|
36 |
Ebuilds will have to specify full category for each dependency with such |
37 |
approach, but that's a policy anyway.. |
38 |
|
39 |
|
40 |
> 3) the many additional directories would cause an 'emerge sync' to take |
41 |
> longer than it does now. |
42 |
Khm, not really sure about this one. If it really becomes that bad there were |
43 |
ways discussed on improving syncing (cvsup or collating small files comes to |
44 |
mind, but that's a separate discussion). |
45 |
|
46 |
> Basically, you'd be pissing everyone off with little benefit (except maybe |
47 |
> to developer sanity). Keep in mind that I probably have absolutely no idea |
48 |
I wouldn't call this a small benefit, considering that its not only |
49 |
developers' sanity at stake here, I am pretty sure users would appreciate a |
50 |
more sane portage structure as well :). |
51 |
|
52 |
> what I'm talking about and nothing I say should be accepted as fact without |
53 |
> verifying it elsewhere. |
54 |
That's what we are trying to do :). |
55 |
|
56 |
George |
57 |
|
58 |
|
59 |
-- |
60 |
gentoo-dev@g.o mailing list |