From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 0E9C61389F5 for ; Sat, 15 Nov 2014 05:19:45 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 6C6D4E0920; Sat, 15 Nov 2014 05:19:44 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id E98E8E091D for ; Sat, 15 Nov 2014 05:19:43 +0000 (UTC) Received: from [192.168.1.7] (ip70-181-96-121.oc.oc.cox.net [70.181.96.121]) (using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: zmedico) by smtp.gentoo.org (Postfix) with ESMTPSA id 37A78340C7D for ; Sat, 15 Nov 2014 05:19:43 +0000 (UTC) Message-ID: <5466E26D.6090802@gentoo.org> Date: Fri, 14 Nov 2014 21:19:41 -0800 From: Zac Medico User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.8.1 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-portage-dev@lists.gentoo.org Reply-to: gentoo-portage-dev@lists.gentoo.org MIME-Version: 1.0 To: gentoo-portage-dev@lists.gentoo.org Subject: Re: [gentoo-portage-dev] [PATCH] unprivileged mode: generate PORTAGE_DEPCACHEDIR References: <1415575480-19505-1-git-send-email-zmedico@gentoo.org> <54609D06.5020101@gentoo.org> <54610217.3080707@gentoo.org> <546120FA.9060305@gentoo.org> <5461559F.2050808@gentoo.org> <5461D389.3000804@gentoo.org> In-Reply-To: <5461D389.3000804@gentoo.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Archives-Salt: 4cf01e9b-4ee8-40ef-b6ed-b5d8cc96c16b X-Archives-Hash: d8d617721a211df3e4d74093e0e87a6e On 11/11/2014 01:14 AM, Alexander Berntsen wrote: > On 11/11/14 01:17, Zac Medico wrote: >> We could certainly express it in a way that doesn't involve any >> mutating loop control variables, but ultimately that's going to >> lead to more lines of code, and it will leave imperative >> programmers wondering why we didn't choose a simpler and more >> succinct approach. > >> For example, we could create an class for iterating over the paths >> from a given path down to the root directory. Then we could create >> a function which selects the first element from that iterator that >> exists. Once the class and function are implemented, their usage >> would be very succinct: > >> first_parent = first_existing(iter_parents(path)) > I would greatly prefer this. But I suppose I'm in a minority. v2 of > the patch is fine by me. Thanks. I eliminated one more backslash, and pushed it. Now I'm thinking about splitting out a first_existing function so that I can use it in portage.data._unprivileged_mode(), to determine if the unprivileged root can be created. Maybe I'll do it with the iterator approach that we've discussed, and we'll see what the consensus is. -- Thanks, Zac