From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: =?utf-8?Q?=E2=80=98core-updates=E2=80=99?= is back! Date: Wed, 30 Aug 2017 11:58:03 +0200 Message-ID: <87lgm14btg.fsf@gnu.org> References: <878ti3uzaz.fsf@gnu.org> <87val6zqg0.fsf@igalia.com> 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]:56509) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dmzlB-00021A-Vh for guix-devel@gnu.org; Wed, 30 Aug 2017 05:58:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dmzl7-0006Ni-T0 for guix-devel@gnu.org; Wed, 30 Aug 2017 05:58:10 -0400 In-Reply-To: <87val6zqg0.fsf@igalia.com> (Andy Wingo's message of "Tue, 29 Aug 2017 11:14:07 +0200") 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" To: Andy Wingo Cc: guix-devel Andy Wingo skribis: > On Tue 29 Aug 2017 00:01, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > >> Yup, I just created a new =E2=80=98core-updates=E2=80=99 branch by pushi= ng >> . Enjoy! >> >> Let=E2=80=99s freeze in one month, say Oct. 1st? > > It would be pretty cool if we could fix our O(n^2) problems in search > paths in this core-updates -- basically whenever you go to create an > environment, instead of making e.g. VAR=3DA:B:C:..., for all VARs > (LIBRARY_PATH, PKG_CONFIG_PATH, etc), instead we make a union directory > Z containing the union of A, B, C, etc and set VAR=3DZ. The goal would be > to fix quadratic run-time lookup costs by replacing it with a > compile-time computation. This applies to many lookups: PATH, -rpath, > etc. A possible alternative solution for ld.so is at . I=E2=80=99m not entirely sure about the idea of creating union directories everywhere. A problem is that we=E2=80=99d be retaining lots of union directories, and even if they=E2=80=99re cheap, that could become non-negli= gible (for every package we=E2=80=99d have to download/build an extra derivation)= . It would also add an extra level of symlinks to go through when one is debugging things. Also, some tools might not notice that /abc=E2=80=A6/lib/libfoo, /def=E2=80=A6/lib/libfoo, and /123=E2=80=A6/lib/l= ibfoo actually are the same thing. Thoughts? Ludo=E2=80=99.