From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: source-directory, installed Emacs, and C source Date: Thu, 26 Oct 2023 07:57:51 +0300 Message-ID: <83a5s6htf4.fsf@gnu.org> References: <875y2wrt0q.fsf@catern.com> <83cyx4krfm.fsf@gnu.org> <837cncko34.fsf@gnu.org> <87y1fsq9ef.fsf@catern.com> <83edhiimd8.fsf@gnu.org> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16071"; mail-complaints-to="usenet@ciao.gmane.io" Cc: sbaugh@catern.com, emacs-devel@gnu.org To: chad Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Oct 26 06:58:48 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qvsSG-0003xA-2P for ged-emacs-devel@m.gmane-mx.org; Thu, 26 Oct 2023 06:58:48 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qvsRF-0005Sl-De; Thu, 26 Oct 2023 00:57:45 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qvsRE-0005SO-56 for emacs-devel@gnu.org; Thu, 26 Oct 2023 00:57:44 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qvsRD-0003hE-M7; Thu, 26 Oct 2023 00:57:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=xfnXIiAW9RV5R7aVdkgwrgE2nhCLCDmET3LcRiXjxzI=; b=IjL6YXpMSqoI V4L/GIpM7Ine6cE71W/p1F5QZq8vo2xSNh83wshg4B2CeuBtUIIVDGCA7E7maf8bonPl7oC0hK7gV Ys2YXx9n/Mq4LKwkL/Cpv5e7hdMIGWoGI8pKdebTpUsOgSWrFUDYkCXtZ/2RHKql6a1H4q2oxAZ0G ZgwFWCEkE83uG7dIjQEjOgVER2mUBbuFlofS6QfiUDdP8N74FnyTW0LS6lmERiTLO5MjPNgclBwjG MjL6+rEVip035GgXg5EZHbyNA5xQ5GfB1QNMnpuzEXPL2e3rs1XznGG19kolRPUyXQYfE1OudNHV9 Axc+H6zKw7B+mQJWaCtJ+w==; In-Reply-To: (message from chad on Wed, 25 Oct 2023 16:30:01 -0400) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:311879 Archived-At: > From: chad > Date: Wed, 25 Oct 2023 16:30:01 -0400 > Cc: sbaugh@catern.com, emacs-devel@gnu.org > > ??? The "Unix-like" installation puts these files in version-specific > directories, so you can have several Emacs versions available on the > same system at the same time. I do that all the time, and have about > a dozen Emacs versions installed and runnable. > > This works if the versions have distinct version numbers, which was not > always the case in my experience back then. Changing the version of Emacs for your local purposes is a very simple procedure, a matter of running a Lisp function in admin.el and then rebuilding. If you need to have multiple XX.YY versions of Emacs installed with the same XX.YY, just set the version to be XX.YY.zz, with zz chosen by you, and then rebuild and install. It's very simple. > This was especially relevant > when testing alternative ports, such as ns versus carbon, different toolkits, > and when hunting bugs or testing features that required a longer run-time > to exercise. Files produced by the build that are architecture-dependent are installed in architecture-specific subdirectories or /usr/local, so you can have several Emacs versions on the same machine compiled for different architectures, let alone different configurations. > The key thing I was trying to convey is just this: a commonly used platform > keeps all of these relevant files in a non-shared, non-central, non-source-tree > hierarchy, then arranges on startup to find these directories and set appropriate > elisp vars to DTRT. If one wants to change the process of finding sources in > emacs, and one wants to support macOS, one should expect a little extra > effort needed on that platform. I don't think we need to learn anything from macOS in this area. Our current installation system solves these issues in a different manner, but it does solve them, and the solutions are simple, easy to understand, and easy to use (unlike macOS solutions that are so obscure and complex that even macOS users here don't really understand all their quirks).