From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Thierry Volpiatto Newsgroups: gmane.emacs.devel Subject: Re: package.el dependencies Date: Mon, 02 Feb 2015 16:33:28 +0100 Message-ID: <87iofk9vlj.fsf@gmail.com> References: <87wq4dpqib.fsf@gmail.com> <87wq44su8v.fsf@gmail.com> <877fw3789y.fsf@gmail.com> <874mr4sbfa.fsf@gmail.com> <87386os8mq.fsf@gmail.com> <87k3009w8z.fsf@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1422891240 315 80.91.229.3 (2 Feb 2015 15:34:00 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 2 Feb 2015 15:34:00 +0000 (UTC) Cc: Stefan Monnier , emacs-devel To: bruce.connor.am@gmail.com Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Feb 02 16:34:00 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1YIJ0g-00063s-NE for ged-emacs-devel@m.gmane.org; Mon, 02 Feb 2015 16:33:58 +0100 Original-Received: from localhost ([::1]:55175 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YIJ0g-0008BD-5A for ged-emacs-devel@m.gmane.org; Mon, 02 Feb 2015 10:33:58 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51864) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YIJ0O-0008Ay-6g for emacs-devel@gnu.org; Mon, 02 Feb 2015 10:33:41 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YIJ0J-0004XY-Mk for emacs-devel@gnu.org; Mon, 02 Feb 2015 10:33:39 -0500 Original-Received: from mail-wi0-x234.google.com ([2a00:1450:400c:c05::234]:50179) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YIJ0J-0004XT-Gi for emacs-devel@gnu.org; Mon, 02 Feb 2015 10:33:35 -0500 Original-Received: by mail-wi0-f180.google.com with SMTP id h11so15887120wiw.1 for ; Mon, 02 Feb 2015 07:33:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=references:from:to:cc:subject:in-reply-to:date:message-id :mime-version:content-type; bh=MK7YJEFrwf8dpXvOzOpsUASaov/njUU5PoHjYGMa70A=; b=bmrHPIDf4usxlKco0Z/1rRmMMPrbZUSg758lH8xPvUx786IzE0YX78QQ27OreQQpGt JmeoidsmAh1hXgRfoAoAphvymC0i2z/SONvMOZPymE4cWCcKfc4n2UGo/ndbel/rLMbh I5e1fi1UQnN2OxdIcAU87/1kwsg9qUMjVT6TehBzhk44penuWGu3rEZlofc3K9gqacx5 uXCEGiZZqu3yD04wk/2E1/+e0foWRxjvDO18Gaq5QXslDLWFZYqw+dOpmMXUoillnY3y J0PLkMMmH6L/aSOHBAd+RPvKSqWUGgQU+LY+ZHwOeCQ2ZlZVzSnz6aIIPQgbE+LUFJNl 0LDA== X-Received: by 10.180.8.233 with SMTP id u9mr23347328wia.56.1422891214817; Mon, 02 Feb 2015 07:33:34 -0800 (PST) Original-Received: from dell-14z ([37.163.229.5]) by mx.google.com with ESMTPSA id fi10sm20330156wib.13.2015.02.02.07.33.32 (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Mon, 02 Feb 2015 07:33:34 -0800 (PST) In-reply-to: <87k3009w8z.fsf@gmail.com> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:400c:c05::234 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:182258 Archived-At: Thierry Volpiatto writes: >> And one more thing. Why did you use `(package--get-deps p 'direct)' in >> this snippet? Passing the `direct' argument will cause it to only >> return 2nd level dependencies at most (direct dependencies of the >> direct dependencies). Consider following example using this definition of package--get-deps: --8<---------------cut here---------------start------------->8--- (defun package--get-deps (pkg &optional only) (let* ((pkg-desc (cadr (assq pkg package-alist))) (direct-deps (cl-loop for p in (package-desc-reqs pkg-desc) for name = (car p) when (assq name package-alist) collect name)) (indirect-deps (unless (eq only 'direct) (cl-loop for p in direct-deps append (package--get-deps p 'direct))))) (cl-case only (direct direct-deps) (separate (list direct-deps indirect-deps)) (indirect indirect-deps) (t (append direct-deps indirect-deps))))) --8<---------------cut here---------------end--------------->8--- Here the dependencies of the package "jedi": (package--get-deps 'jedi 'direct) =>(epc auto-complete python-environment) (package--get-deps 'epc 'direct) =>(concurrent ctable) (package--get-deps 'concurrent 'direct) =>(deferred) (package--get-deps 'ctable 'direct) =>nil (package--get-deps 'auto-complete 'direct) =>(popup) (package--get-deps 'python-environment 'direct) =>(deferred) (package--get-deps 'jedi) =>(epc auto-complete python-environment concurrent ctable popup deferred) As you can see all the dependencies are here and there is no duplicates. -- Thierry Get my Gnupg key: gpg --keyserver pgp.mit.edu --recv-keys 59F29997