1 |
With great pleasure, I announce the testing release of new eselect |
2 |
modules for BLAS, CBLAS and LAPACK implementations. You may say, "But we |
3 |
already have 'eselect blas' and 'eselect lapack,' Donnie! What are you |
4 |
thinking?" In reply, I would say, "The current eselect modules have many |
5 |
limitations." |
6 |
|
7 |
One of the main problems with the existing setup is that available |
8 |
implementations are hardcoded into the modules rather than being |
9 |
autodetected from the system. This just doesn't scale well, and it ties |
10 |
upgrades and changes to BLAS/LAPACK/whatever into a required update of |
11 |
eselect. |
12 |
|
13 |
A point of disagreement between Danny van Dyk (Kugelfang) and myself is |
14 |
handling systems with multiple libdirs (e.g., AMD64). To understand our |
15 |
quandary, you'll first need to understand how the new modules work. |
16 |
|
17 |
My opinion is that if you want to switch implementations, you should be |
18 |
warned if any available libdir failed to switch to the implementation |
19 |
you selected. The tradition of Unix tools says they should be silent |
20 |
when everything works as expected and be loud on errors. |
21 |
|
22 |
Not switching for all libdirs when you explicitly said you wanted to |
23 |
switch your whole system is an error, even if the implementation isn't |
24 |
currently available for all your libdirs. Anything else will require |
25 |
adding hackish special cases to the code and doesn't fit with my model |
26 |
of how the modules should work. |
27 |
|
28 |
Danny thinks instead that the modules should list all libdirs for which |
29 |
the implementation was changed rather than warn about libdirs for which |
30 |
it wasn't. This opposes the Unix philosophy. Danny also thinks that the |
31 |
modules should silently fail when no implementations are available for a |
32 |
certain libdir when the user wants to switch the whole system. I |
33 |
disagree and think the modules should warn the user. |
34 |
|
35 |
In addition, Danny brings up a specific subprofile on amd64 called |
36 |
no-symlink, in which lib32, lib, and lib64 are all directories rather |
37 |
than symlinks. He says the 'lib' directory is only for arch-independent |
38 |
(ABI-independent) files, so we should also add a special case for that. |
39 |
Knowing my hatred of special casing, you may guess I disagree. |
40 |
|
41 |
The main issue needing resolution is whether to warn on failures to |
42 |
switch given libdirs when trying to switch the whole system, or whether |
43 |
to say which successfully switched. One way is the Unix philosophy, and |
44 |
the other way is ... something else. |
45 |
|
46 |
Without further ado, you may get all the ported BLAS/CBLAS/LAPACK |
47 |
implementations as well as the new eselect modules from my overlay [1]. |
48 |
They will remain there until more widespread testing is completed. |
49 |
|
50 |
Please post all responses ONLY to the gentoo-dev list (unless you aren't |
51 |
subscribed, in which case you can reply to whichever list you're |
52 |
subscribed to). |
53 |
|
54 |
Thanks, |
55 |
Donnie |
56 |
|
57 |
1. http://dev.gentoo.org/~spyderous/overlay/ |