From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id 8FOIGqJy6GZNrgAA62LTzQ:P1 (envelope-from ) for ; Mon, 16 Sep 2024 18:02:10 +0000 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id 8FOIGqJy6GZNrgAA62LTzQ (envelope-from ) for ; Mon, 16 Sep 2024 20:02:10 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=debbugs.gnu.org header.s=debbugs-gnu-org header.b=aIcu5fgl; dkim=fail ("headers rsa verify failed") header.d=friendly-machines.com header.s=dreamhost header.b=LF6+Mj+S; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=none; arc=reject ("signature check failed: fail, {[1] = sig:mailchannels.net:reject}") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1726509730; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=woU2Skub2KSkYafWW8FOKgKLPbHSUyEZ4eKgtHkqbww=; b=MWhuPkMPxL5H2jObeLOqVWy2a5NwKZDmN070tTpN3oXtH1prTt4QcUHKKHQgfuy+60ABJy QqgQIWBoeesKe96llqIJ8ksHAZ800pMdzslN1z/B5XG+HdiCqKM9ADHkTGLB3jORyxcvJ1 XIHdzQHY+USMoizgW0mxMXB2xswNhbYtNeMbMNffgSdFxCU/34ud9LY4HJOqx4eeLdyQ+p 10RhbXclX6L4nT/RJqWkufdgn9TE1qRQzx2LyRG8Xaark1u/P58ND/QCql8ukU19RQIvVR vCWyfXhTH18fQUpuvovX0i5hcuHVr5EmU4ATGaoMnlXgb+NXCvCk+b3DKYx31g== ARC-Authentication-Results: i=2; aspmx1.migadu.com; dkim=pass header.d=debbugs.gnu.org header.s=debbugs-gnu-org header.b=aIcu5fgl; dkim=fail ("headers rsa verify failed") header.d=friendly-machines.com header.s=dreamhost header.b=LF6+Mj+S; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=none; arc=reject ("signature check failed: fail, {[1] = sig:mailchannels.net:reject}") ARC-Seal: i=2; s=key1; d=yhetil.org; t=1726509730; a=rsa-sha256; cv=fail; b=P7k+ILmxbhjNyMJ5+awZKYhAeiZUgLH8S1rFbPOiU5WW7nimxOOFnLdg4kD/JqaVCF7ekW 93UrQwLRgSuq9asCM4UUcN/i/FBgY973OF4fIsT8zlyIhmWHy7HBr/9pwWW4VSnsuE4q32 7LFq6AZYJq4OQbU4MIXSsWZ3rKtNDNCV7vey6r8BZ6Bst4PFyBi9dOeSPTESFigsWGJJX8 yu1ZTxRWSsQrwSDXQ9rqj1PkJbdYpe/bmkc694NOP2gEl/TQ/HOiR2pwsXzOObPwoMQqmm LKS42RvpPTUwia7i+xtyeYivq6ZKcQqGFWEiG4pkT8CDuSiG/PBTjvRFQ4rupg== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 75EDE4C35 for ; Mon, 16 Sep 2024 20:02:09 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sqG2r-00077X-6A; Mon, 16 Sep 2024 14:01:53 -0400 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 1sqG2n-00076t-Gr for guix-patches@gnu.org; Mon, 16 Sep 2024 14:01:49 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sqG2n-0006Ag-7C for guix-patches@gnu.org; Mon, 16 Sep 2024 14:01:49 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=References:In-Reply-To:From:Date:MIME-Version:To:Subject; bh=woU2Skub2KSkYafWW8FOKgKLPbHSUyEZ4eKgtHkqbww=; b=aIcu5fglSGDGC4IoeeQFOk7cPhqmIesztnqnhlEmzzzALleUtuWdziqt2soWku+1mmNBKZ/D59OklqbAptLPt88I9FEza6+Ao4q5byB4sY1iaP11f73juBkisLDMeVaG6D5loPVjqZJ1nNsoAzdSYS23xstRrYw/0QvRgGCMalOoORWCpqNrrrrmv9zTrLFyZ0twWvtWJlBbmz1lTRCrRH0inZLHdC3QtPjrL2kqaOVruahftwFsA5NbAXVz9FYP57QeCp5bJe9KZqPTAtGZIL109r6hPCWc6Wa1Mct+kSVj2y3z2jyfsUctHx/67diaWnHV7Lsc21kOaiz20DW1Kg==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sqG30-00070o-JW for guix-patches@gnu.org; Mon, 16 Sep 2024 14:02:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#72994] [PATCH] gnu: emacs-julia-snail: Vendor julia libraries. Resent-From: dannym@friendly-machines.com Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 16 Sep 2024 18:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72994 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: Katherine Cox-Buday , 72994@debbugs.gnu.org, Liliana Marie Prikler , Andrew Tropin Received: via spool by 72994-submit@debbugs.gnu.org id=B72994.172650970326914 (code B ref 72994); Mon, 16 Sep 2024 18:02:02 +0000 Received: (at 72994) by debbugs.gnu.org; 16 Sep 2024 18:01:43 +0000 Received: from localhost ([127.0.0.1]:53213 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sqG2h-000701-8R for submit@debbugs.gnu.org; Mon, 16 Sep 2024 14:01:43 -0400 Received: from bee.birch.relay.mailchannels.net ([23.83.209.14]:35841) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sqG2f-0006zk-8S for 72994@debbugs.gnu.org; Mon, 16 Sep 2024 14:01:42 -0400 X-Sender-Id: dreamhost|x-authsender|dannym@friendly-machines.com Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id D746DA5482; Mon, 16 Sep 2024 18:01:18 +0000 (UTC) Received: from pdx1-sub0-mail-a291.dreamhost.com (trex-7.trex.outbound.svc.cluster.local [100.96.74.186]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id B84EFA47C8; Mon, 16 Sep 2024 18:01:16 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1726509678; a=rsa-sha256; cv=none; b=iabqsKs+u48FfH52feWk8m9jxxky+03taFInIoQYtkdO5cxplB23VP6d9dqWvvYRIWB9j/ 7vFnTQINZ7fu73bC1wWwPb5a7e7uGB1S0ruWR2QsmqiH6/7jd1wjjp15hezbyTFKhOmwp5 pjY9K+1H+YbMcxy4tiRqn/02pYTRmT7Bx9WXvYgk0jWpkwfdi5NwaRhhtRphNrh/h1HuLj WSodLru2CxMtrl9J0cZH0aGp7jwB21oD9cJQKib+1g3OKedJereeSBJ1DpgsJJYsWOus6N 7G0zC2cM1rCiVvZi+DGeZxY/ZEsian7xvRVabs0VrQSHlwY3ergEgrsR+vdmHg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1726509678; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=woU2Skub2KSkYafWW8FOKgKLPbHSUyEZ4eKgtHkqbww=; b=f9ZOHiTdv6K1TpT0kkE9BKXZogS0UfqsyflFJxTCm7RaERywlRWnBOUz2fwuOw6RFGPR7t uUzNBmCJb7zuQs3aAwi9RqJQDCpqXAvlUvJQz84thOhdDyF5hd5iOmKZNqsmQ8fc3p97gs aOJlWHFcxc+cJmnoMBI8L3w1aYwBKE8PHxsatbT6R3O0YbEGFw+JawdRoVlSzdmEn7sMQ5 yx9ZrvgB6CFQdb6+GIk7cwNB0O8c39n2wgWZBC9kiTITcALRW4i/HpOPlyvatgXtypeHio x6p1rFg/HhLs3b4zkOP+hLlQ6pPCXLpCDM1wksa6+vlDPewE0nu1Dd93cBGsHA== ARC-Authentication-Results: i=1; rspamd-5b46bcd97f-9tw6t; auth=pass smtp.auth=dreamhost smtp.mailfrom=dannym@friendly-machines.com X-Sender-Id: dreamhost|x-authsender|dannym@friendly-machines.com X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|dannym@friendly-machines.com X-MailChannels-Auth-Id: dreamhost X-Tasty-Share: 5843e59028887027_1726509678610_3843356621 X-MC-Loop-Signature: 1726509678610:250895925 X-MC-Ingress-Time: 1726509678610 Received: from pdx1-sub0-mail-a291.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.96.74.186 (trex/7.0.2); Mon, 16 Sep 2024 18:01:18 +0000 Received: from webmail.friendly-machines.com (ip-66-33-200-4.dreamhost.com [66.33.200.4]) (Authenticated sender: dannym@friendly-machines.com) by pdx1-sub0-mail-a291.dreamhost.com (Postfix) with ESMTPA id 4X6t583lCHzHj; Mon, 16 Sep 2024 11:01:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=friendly-machines.com; s=dreamhost; t=1726509676; bh=woU2Skub2KSkYafWW8FOKgKLPbHSUyEZ4eKgtHkqbww=; h=Date:From:To:Cc:Subject:Content-Type:Content-Transfer-Encoding; b=LF6+Mj+SyQQb7ucg/mNX+Uke/jFOVJ28pa+fJj8V5A7M5fqLGU2x9kZY6CjApVWeu EQILcj5mL4++bWeYhUDE2ENZG8o6o4vDmqstG3+h7JAeXymXZ8w8qDVezuFSMDlu7a llIUjRK0l/l3UxvTD+VWrqQFnh6X2TxBoMQ8Fl+IxIj+5VcNAtloonsggxfOaL9TaG QR/fqZnqsveg4m9Kpo173v0tA6Dw97jRz0jg2MWWCzAe9eCGKext7/cft/CLKdSPwS QwYkNvf5QzeBdnXFLBLugRhACB8ccPVPyhDD4NgXICz7wSDSucsQbwVl3dChiZLiGM /8myBk0w1A3Hg== MIME-Version: 1.0 Date: Mon, 16 Sep 2024 20:01:16 +0200 From: dannym@friendly-machines.com In-Reply-To: <87cyl49fbv.fsf@gnu.org> References: <58ce361528f55e5ad76ed7da4123525a9e9375e5.1725319687.git.dannym@friendly-machines.com> <87cyl49fbv.fsf@gnu.org> User-Agent: Roundcube Webmail/1.5.0 Message-ID: X-Sender: dannym@friendly-machines.com Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Queue-Id: 75EDE4C35 X-Migadu-Scanner: mx11.migadu.com X-Spam-Score: -8.04 X-Migadu-Spam-Score: -8.04 X-TUID: WMdrzBSnXVpv Hi Ludo, On 2024-09-16 10:24, Ludovic Courtès wrote: >> + (copy-recursively (string-append (assoc-ref inputs >> "julia-tokenize") >> + >> "/share/julia/loadpath/Tokenize") > > Use ‘search-input-directory’ rather than ‘assoc-ref’. Will do! > I’m not sure I understand. For most programming languages (Python, > etc.), we use propagated inputs like this. How does that differ? > > Normally we unbundle (“unvendor”?) libraries and this seems to go in > the > opposite direction, right? The idea is to make Guix more user-friendly. I touched this only after I myself got bitten by the following: I have guix home (with only a few packages--notably no julia (!) or gcc-toolchain or anything like that in it), and I have emacs set up with emacs-buffer-env and the following configuration: (setq buffer-env-script-name '("manifest.scm" ".envrc")) In a julia project, manifest.scm contains: (specifications->manifest (list "julia")) The idea is that emacs-bufferenv will automatically load that manifest when I open a file in that directory within emacs--and then have julia-snail REPL (including sending expression on point to the REPL) work. Since the emacs julia-snail REPL integration needs to find the bounds of the expression, it has to have a parser for the Julia language. However, what happens now is that because I don't have julia-cstparser and julia-tokenize in guix home, it won't work. But from the standpoint of the profile I shouldn't have julia-cstparser and julia-tokenize in my home profile since I don't personally directly use it (it's a requirement of emacs-julia-snail--I didn't even know what julia-cstparser is a few days ago :) ). But nevermind that. Even if I added julia-cstparser and julia-tokenize to my guix home profile, it would NOT work. The reason is because julia itself is not part of the guix home profile, and the "julia" package would have a search-path specification that would set some environment variables that julia needs to find julia-cstparser and julia-tokenize. Since the package is not there (in guix home) it won't set the variables. The idea of this patch is that emacs will automatically set up whatever it needs to in order to make the REPL work (including the finding of the boundaries of the current expression that the emacs package needs for "send expression at point to REPL") without weird dependencies bleeding explicitly into the user profile or into the local directory's manifest. In my opinion, the user should not need to be concerned with what julia-cstparser is in this case. Emacs should just magically load whatever it needs for the Julia REPL to work (whether that's written in Julia or Python or whatever is an implementation detail--you COULD have a Julia parser written in Python. Notably, most parsers for any language in IntelliJ IDEA are written in Java--the Python parser, Rust parser etc). That said, I'm totally open to other ways to do it. The obvious alternative would be for the user to put julia-cstparser and julia-tokenize into every Julia project's manifest.scm . But the error message is inscrutable if you don't have those in there[1]--and I have no idea how any normal person would figure out that julia-cstparser is needed in the first place. [1] julia-snail--send-to-server: No Julia REPL buffer *julia* found; run julia-snail Starting Julia process and loading Snail... julia-snail--repl-enable: The REPL terminal buffer is inactive; double-check julia-snail-executable path (In buffer "*scratch*" : ) julia-snail-executable "julia" (note: that "julia" excutable IS available in the manifest of the buffer env--and launching "julia" does work when launched manually within emacs)