From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Managing environments (Python venv, guix environment, etc.) Date: Sun, 24 Jul 2016 22:36:02 +0300 Message-ID: <83zip6u8v1.fsf@gnu.org> References: <87y453sy0n.fsf@earth.catern.com> <87r3arripr.fsf@earth.catern.com> <874m7jygot.fsf@earth.catern.com> <83oa5ox21u.fsf@gnu.org> <123d2ae9-b523-5d5b-3bf8-c6e4462270b8@yandex.ru> <87a8h7wihs.fsf@earth.catern.com> <83shuzt8iz.fsf@gnu.org> <87y44rudzi.fsf@earth.catern.com> <834m7evry3.fsf@gnu.org> <87oa5mvotr.fsf@earth.catern.com> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1469389003 13302 80.91.229.3 (24 Jul 2016 19:36:43 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 24 Jul 2016 19:36:43 +0000 (UTC) Cc: emacs-devel@gnu.org To: Spencer Baugh Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jul 24 21:36:38 2016 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 1bRPCW-0005UC-Lt for ged-emacs-devel@m.gmane.org; Sun, 24 Jul 2016 21:36:36 +0200 Original-Received: from localhost ([::1]:57242 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bRPCV-00066g-U4 for ged-emacs-devel@m.gmane.org; Sun, 24 Jul 2016 15:36:35 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:39440) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bRPCP-00066O-TF for emacs-devel@gnu.org; Sun, 24 Jul 2016 15:36:30 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bRPCL-0007zL-PV for emacs-devel@gnu.org; Sun, 24 Jul 2016 15:36:28 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:40907) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bRPCL-0007zG-MR; Sun, 24 Jul 2016 15:36:25 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:4131 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bRPCH-0005Lp-QS; Sun, 24 Jul 2016 15:36:24 -0400 In-reply-to: <87oa5mvotr.fsf@earth.catern.com> (message from Spencer Baugh on Sun, 24 Jul 2016 15:05:52 -0400) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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" Xref: news.gmane.org gmane.emacs.devel:206093 Archived-At: > From: Spencer Baugh > Cc: emacs-devel@gnu.org > Date: Sun, 24 Jul 2016 15:05:52 -0400 > > Why would the effect be so significant? For the same reason as load-path. > Is exec-path used internally somehow in some confusing and tricky > way? It's used in the same messy way as load-path, just for looking for different kind of files. And it is as pervasive as load-path. > If it's just Elisp using exec-path, it doesn't seem like messing > with exec-path would be that subtle or difficult. Not just Elisp, C primitives as well. And even Elisp can be messy if it's in preloaded packages like files.el, subr.el and simple.el. IOW, I simply fail to see how we will be able to avoid disrupting the most basic features if we modify exec-path. Even visiting a file can fire up a subprocess -- how do we make sure the right program for that will still be found, if we let some project's environment mess with exec-path behind the user's back? And what about spellers (e.g., for ispell-check-comments-and-strings)? Etc. etc. Once again, why not use locate-file? CEDET and EDE already do, and I assume for good reasons. More generally, why would a project want to modify exec-path? to find which programs? Is it only the compiler/interpreter of the programming language used by the project, or something else as well, and why? E.g., I don't really understand your example with browse-url -- why would I want to change a browser as function of the project I'm working on?