From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: DEOL: Declarative Emacs On-Line Date: Fri, 04 Mar 2022 03:28:01 +0100 Message-ID: <87o82mqwni.fsf@zoho.eu> References: <83tucvz53x.fsf@gnu.org> <87sfsecw2c.fsf@zoho.eu> <87r17wydgk.fsf@zoho.eu> <87a6ekhuen.fsf@metapensiero.it> <8735k536uv.fsf@zoho.eu> <87mti9za44.fsf@metapensiero.it> <874k4hl40r.fsf@zoho.eu> <877d9crfcb.fsf@metapensiero.it> <87wnhc9m1j.fsf_-_@zoho.eu> <87lexr5wyd.fsf@metapensiero.it> Reply-To: Emanuel Berg Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="8691"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:V6cdwIyRGIL3ZYDq4hgyJrmbKnc= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Fri Mar 04 05:22:50 2022 Return-path: Envelope-to: geh-help-gnu-emacs@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 1nPzSr-00020m-Cd for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 04 Mar 2022 05:22:49 +0100 Original-Received: from localhost ([::1]:46566 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nPzSq-0007iQ-1F for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 03 Mar 2022 23:22:48 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:41264) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nPxfz-0002Cw-Le for help-gnu-emacs@gnu.org; Thu, 03 Mar 2022 21:28:15 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]:42222) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nPxfx-0007RB-Rt for help-gnu-emacs@gnu.org; Thu, 03 Mar 2022 21:28:15 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1nPxft-0006Wz-9h for help-gnu-emacs@gnu.org; Fri, 04 Mar 2022 03:28:09 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Thu, 03 Mar 2022 23:22:18 -0500 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:136351 Archived-At: Lele Gaifax wrote: > I'm not sure what you mean, but you can easily find examples > of managing Emacs configs from Emacs-the-program down to the > single package: > > https://github.com/jwiegley/nix-config/blob/master/overlays/10-emacs.nix Hm, that's a lot of code, isn't this supposed to do this easier and more viewable? ;) Maybe you can yank and explain a subset of that code? Actually, this doesn't look like what I want att all, sorry. seq = if esuper.emacs.version != "26.3" then mkDerivation rec { name = "seq-stub"; version = "stub"; src = ./.; phases = [ "installPhase" ]; installPhase = '' mkdir $out touch $out/.empty ''; that looks like a mix of automatic and manual processing, and a mix of declarative and imperative styles as well. ("Imperative" is the CS word for stacking commands.) To be honest the posted Makefile actually looks much better IMO. [1] Here, have a look, couldn't it look more like this? https://dataswamp.org/~incal/common-lisp/general-base/gb.asd And again, that could be simplified even further since dependencies could be derived :) > https://github.com/jwiegley/nix-config/blob/master/config/emacs.nix That's more like it, only in the Emacs world we like to evaluate things. Couldn't it be left to Emacs to have a declarative build system of its own? But anyway that's certainly interesting anyway, so then how do I use it? You already saw what I use, crontab-mode-20210715.133 gnuplot-mode-20171013.1616 google-translate-20210406.1138 lua-mode-20210809.1320 markdown-mode-20211022.55 scad-mode-20200830.301 seq-2.23 slime-20220210.1512 sml-mode-6.10 w3m-20211122.335 > In that config, John uses Home Manager to track even most > of user's dotfiles. > > https://nix-community.github.io/home-manager/ Not following, what does that do? Instead of loading them from .emacs? Or `require' them in Elisp? Indeed I've spent ages doing that as well [2] - now it is very easy to find an error even from zero information about it, since one can do binary search by commenting out files or group of files ... (instead of source lines) [well, actually that is how it is done still LOL] [1] https://dataswamp.org/~incal/emacs-init/Makefile [2] https://dataswamp.org/~incal/conf/.emacs -- underground experts united https://dataswamp.org/~incal