From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: forcing local build from a package definition Date: Sun, 26 Oct 2014 14:59:12 +0100 Message-ID: <8761f7nd8v.fsf@gnu.org> References: <87ppdhxpl7.fsf@gmail.com> <87r3xvpz1v.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:59291) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XiOLT-0007iR-HY for guix-devel@gnu.org; Sun, 26 Oct 2014 09:59:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XiOLO-0000gc-SN for guix-devel@gnu.org; Sun, 26 Oct 2014 09:58:59 -0400 Received: from hera.aquilenet.fr ([2a01:474::1]:41504) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XiOLO-0000gQ-LO for guix-devel@gnu.org; Sun, 26 Oct 2014 09:58:54 -0400 In-Reply-To: (Federico Beffa's message of "Sun, 26 Oct 2014 09:34:33 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Federico Beffa Cc: Guix-devel Federico Beffa skribis: > On Sun, Oct 26, 2014 at 12:25 AM, Ludovic Court=C3=A8s wro= te: >> I think ATLAS should do like GMP, libc, etc.: build all the possible >> variants, and then use IFUNC or a similar mechanism to select the right >> variant at load time. > > I would like to highlight two points: > > 1. there are many variants (see below). I think this is not too different from libc and GMP. > 2. even for the same configure time configuration, the build phase > does not necessarily produce identical libraries all the time. The > build phase tries many variants of algorithms, times them and picks > the best performing one. The result may be different depending on the > overall performance of the system such as on memory access time, and > several other factors. Oh, OK; that=E2=80=99s definitely different. >> That doesn=E2=80=99t answer your initial question, though. For now, I t= hink >> it=E2=80=99s OK to let it do its configure-time tuning and add a stateme= nt in >> the description about substitutes, unless other packages depend on it >> (in the former case, people would be installing it explicitly, so they >> would most likely know what they=E2=80=99re doing.) > > I'm preparing numpy/scipy and they depend on ATLAS. But initially it > will be independent. In that case, what about making a generic version (one that can be substituted, at the expense of being less optimized), which would be the one used by NumPy, and then the optimized version? In the not-too-distant future, we=E2=80=99ll be able to mark the package as non-substitutable, which will be best. There=E2=80=99s already a #:local-b= uild? flag around, but its semantics are a bit fuzzy at the moment because it determines both whether to offload and whether to substitute. I would like that to be improved, by having two different options, before we start relying on it in packages. Thanks, Ludo=E2=80=99.