1 |
On Sun, 2006-08-06 at 22:08 +0100, Paul Bredbury wrote: |
2 |
> > Other cases would want it to return TRUE. |
3 |
> |
4 |
> Got an example of those? I expect to be able to show that they're |
5 |
> incorrect. |
6 |
|
7 |
Sorry to keep this alive. |
8 |
|
9 |
Example: subversion.eclass has |
10 |
if built_with_use dev-util/subversion nowebdav; then |
11 |
die "need webdav support in subversion" |
12 |
... |
13 |
Clearly, where an ebuild requires that a package be merged *without* a |
14 |
USE flag set, a FALSE return from built_with_use is expected to indicate |
15 |
that that package was merged with that USE flag unset. |
16 |
|
17 |
Looking at this logically, you're interpreting built_with_use as the |
18 |
Russell definite designator: |
19 |
|
20 |
built_with_use (A, Fl) := Fl set_on (i P. P matches A) |
21 |
== Ex P. (All P'. (P' matches A <=> P' = P) ^ Fl set_on P) |
22 |
|
23 |
where A denotes an atom, Fl a flag, P, P' a package. |
24 |
|
25 |
Yes, the Russell definite designator has value FALSE if it lacks a |
26 |
referent; however there is no need for built_with_use to behave as the |
27 |
definite designator, since we have a trinary logic (TRUE, FALSE, die) |
28 |
available. The big problem with the Russell definite designator is that |
29 |
it is not self-dual under negation (and its dual under negation is not |
30 |
useful); a trinary definite designator /is/ self-dual. (That is, |
31 |
"built_with_use app-foo/bar shiney" is equivalent to "! built_with_use |
32 |
app-foo/bar -shiney". Which is what ebuild authors want.) |
33 |
|
34 |
HTH, |
35 |
|
36 |
Ed |
37 |
|
38 |
-- |
39 |
gentoo-portage-dev@g.o mailing list |