1 |
Hi Donnie, |
2 |
|
3 |
Am Freitag, 26. Mai 2006 05:20 schrieb Donnie Berkholz: |
4 |
> With great pleasure, I announce the testing release of new eselect |
5 |
> modules for BLAS, CBLAS and LAPACK implementations. You may say, "But |
6 |
> we already have 'eselect blas' and 'eselect lapack,' Donnie! What are |
7 |
> you thinking?" In reply, I would say, "The current eselect modules |
8 |
> have many limitations." |
9 |
And rightfully so! :-) Thanks for all your efforts here, it is really |
10 |
appreciated. |
11 |
|
12 |
> One of the main problems with the existing setup is that available |
13 |
> implementations are hardcoded into the modules rather than being |
14 |
> autodetected from the system. This just doesn't scale well, and it |
15 |
> ties upgrades and changes to BLAS/LAPACK/whatever into a required |
16 |
> update of eselect. |
17 |
> |
18 |
> A point of disagreement between Danny van Dyk (Kugelfang) and myself |
19 |
> is handling systems with multiple libdirs (e.g., AMD64). To |
20 |
> understand our quandary, you'll first need to understand how the new |
21 |
> modules work. |
22 |
> |
23 |
> My opinion is that if you want to switch implementations, you should |
24 |
> be warned if any available libdir failed to switch to the |
25 |
> implementation you selected. The tradition of Unix tools says they |
26 |
> should be silent when everything works as expected and be loud on |
27 |
> errors. |
28 |
Right, emphasis on "error" here. |
29 |
|
30 |
> Not switching for all libdirs when you explicitly said you wanted to |
31 |
> switch your whole system is an error, even if the implementation |
32 |
> isn't currently available for all your libdirs. Anything else will |
33 |
> require adding hackish special cases to the code and doesn't fit with |
34 |
> my model of how the modules should work. |
35 |
See, i don't see the explicity of 'all libdirs' when not specifying any |
36 |
libdirs at all. In my eyes, 'eselect blas set acml' doesn't mean: |
37 |
'switch to acml in _all libdirs_', but 'switch to acml in _all libdirs |
38 |
it is installed to_. |
39 |
> |
40 |
> Danny thinks instead that the modules should list all libdirs for |
41 |
> which the implementation was changed rather than warn about libdirs |
42 |
> for which it wasn't. This opposes the Unix philosophy. Danny also |
43 |
> thinks that the modules should silently fail when no implementations |
44 |
> are available for a certain libdir when the user wants to switch the |
45 |
> whole system. I disagree and think the modules should warn the user. |
46 |
|
47 |
> |
48 |
> In addition, Danny brings up a specific subprofile on amd64 called |
49 |
> no-symlink, in which lib32, lib, and lib64 are all directories rather |
50 |
> than symlinks. He says the 'lib' directory is only for |
51 |
> arch-independent (ABI-independent) files, so we should also add a |
52 |
> special case for that. Knowing my hatred of special casing, you may |
53 |
> guess I disagree. |
54 |
Motivation for this special casing is, that this warning would appear |
55 |
any time the user doesn't specify the libdirs, and there is nothing the |
56 |
user can do against it. There just is no way to install any |
57 |
blas/cblas/lapack implementation to /usr/lib on no-symlink profile. |
58 |
I'm strongly against warnings that can't be turned off. Futher, this |
59 |
would be no additional special case, it can easily be merged with the |
60 |
previous special casing: only swithch on libdir that the package is |
61 |
installed to. |
62 |
|
63 |
> The main issue needing resolution is whether to warn on failures to |
64 |
> switch given libdirs when trying to switch the whole system, or |
65 |
> whether to say which successfully switched. One way is the Unix |
66 |
> philosophy, and the other way is ... something else. |
67 |
:-) |
68 |
|
69 |
> Without further ado, you may get all the ported BLAS/CBLAS/LAPACK |
70 |
> implementations as well as the new eselect modules from my overlay |
71 |
> [1]. They will remain there until more widespread testing is |
72 |
> completed. |
73 |
Donnie: RFC: should ACML be modified to install both ABIs? (i.e. x86 and |
74 |
amd64). I'd say no, as no packages but glibc/gcc/binutils currently do |
75 |
that. |
76 |
|
77 |
Danny |
78 |
-- |
79 |
Danny van Dyk <kugelfang@g.o> |
80 |
Gentoo/AMD64 Project, Gentoo Scientific Project |
81 |
-- |
82 |
gentoo-dev@g.o mailing list |