GNU bug report logs - #60753
[PATCH] gnu: home: Add home-emacs-service-type.

Previous Next

Package: guix-patches;

Reported by: David Wilson <david <at> daviwil.com>

Date: Thu, 12 Jan 2023 14:12:02 UTC

Severity: normal

Tags: patch

Full log


Message #35 received at 60753 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Andrew Tropin <andrew <at> trop.in>
Cc: "\(" <paren <at> disroot.org>, David Wilson <david <at> daviwil.com>,
 60753 <at> debbugs.gnu.org
Subject: Re: [bug#60753] [PATCH] gnu: home: Add home-emacs-service-type.
Date: Mon, 23 Jan 2023 11:18:47 +0100
Hi,

Andrew Tropin <andrew <at> trop.in> skribis:

> On 2023-01-17 10:02, Ludovic Courtès wrote:
>
>> Hi,
>>
>> Andrew Tropin <andrew <at> trop.in> skribis:
>>
>>>> What about accepting sexps (or gexps) instead of strings?  As in:
>>>>
>>>>   (init-file '((require 'whatever) (setq something t)))
>>>
>>> A quick minor note on this approach: it won't be possible to use
>>> #'elisp-function inside such configuration because it will be
>>> interpreted by guile reader, but actually rde lives without this
>>> functionality completely ok.
>>
>> Specifically:
>>
>>   (write '#'x)
>>   |= (syntax x)
>>
>> But we can use (guix read-print) and ensure that it prints #'.
>>
>
> Do you have any links to docs/sample implementations on the topic of
> extending guile reader, so we have an example to start with?

It’s not the reader but rather the writer that we’d want to tweak.

In (guix read-print), ‘pretty-print-with-comments’ already special cases
quasiquote etc. so that it prints ‘`’ (backtick) and not ‘quasiquote'.
We’d add clauses for ‘syntax’ and ‘quasisyntax’.

> I think it will be cool to hook up a custom reader, ideally comment
> preserving, for emacs lisp inside scheme files.

(guix read-print) is what you want.  :-)

>>> Do we want something like this possible?
>>>
>>> (init-file `((require 'whatever)
>>>              (setq something t)
>>>              (load ,(local-file "old-init.el")))
>>
>> It’d be nice.  In that case, we’ll want it to be a gexp though:
>>
>>   #~((require 'whatever) (load #$(local-file …)))
>>
>
> gexps are nice, but do we really need/want them here?  Do you have any
> thoughts on what are the benifits over quasiquotes in this case?  Maybe
> some examples?

The benefit in the example above is that the gexp would actually work
whereas the sexp wouldn’t :-), unless there’s code somewhere to manually
traverse the sexp adn replace the <local-file> record with its store
item (which is what gexps are about).

I hope that makes sense!

Ludo’.




This bug report was last modified 2 years and 117 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.