* [ANN] Emacs-Guix 0.4
@ 2018-05-19 12:58 Alex Kost
2018-05-20 22:55 ` Maxim Cournoyer
0 siblings, 1 reply; 8+ messages in thread
From: Alex Kost @ 2018-05-19 12:58 UTC (permalink / raw)
To: help-guix
Hello, Emacs-Guix (Emacs interface for GNU Guix) version 0.4 has been
released. If you are not familiar with it yet, you may start with:
‘guix package -i emacs-guix’ and "M-x guix-about".
Summary of the new features:
* Interface to display services
It is very similar to the interface for packages: the following
commands will show you a list of services, where you can press RET to
get more info about the current (or marked) service(s). The new
commands are:
- M-x guix-all-services
- M-x guix-default-services
- M-x guix-services-by-name
- M-x guix-services-by-regexp
- M-x guix-services-by-location
"M-x guix-default-services" allows you to look at %base-services and
%desktop-services.
You may look at the screenshot for this new interface here:
https://alezost.github.io/guix.el/images/screenshots/services.png
Also, similarly to "M-x guix-package-locations" (renamed from "M-x
guix-locations"), now there is:
- M-x guix-service-locations
(Now there are so many commands that even "M-x guix-help" may look
terrifying :-))
* Additions for 'guix-devel-mode'
- [C-c . '] key binding (‘guix-devel-code-block-edit’ command) allows
you to edit synopsis or description of the current package in the
texinfo-mode. This feature is very similarly to the org-mode
[C-c '] facility.
- If you add the following code to your .emacs, you'll be able to find
package patches with "M-x ffap":
(add-to-list 'ffap-alist '("\\.patch" . guix-devel-ffap-patch))
* guix-env-var-mode
When you build a package with ‘guix build --keep-failed’, you can find
"/tmp/guix-build-*-*.drv-*/environment-variables" file which is now
prettified with ‘guix-env-var-mode’: it is the same as ‘sh-mode’ but
it also reformats the buffer to make the long guix file names more
readable.
* M-x guix-dependent-packages
It displays packages that depend on the specified package(s); this is
analogous to ‘guix refresh --list-dependent’ shell command.
* M-x guix-number-of-packages
It just displays the total number of Guix packages (including the
packages placed in your GUIX_PACKAGE_PATH) in the minibuffer.
* M-x guix-report-bug
Similarly, to "M-x report-emacs-bug", it prompts for a bug subject and
opens a mail buffer with <bug-guix@gnu.org> address, and that's all.
* Performance improvements
You probably noticed that "M-x guix-all-available-packages" was very
slow (it could even fail on not-so-powerful machines). This slowness
happened when big chunks of data were passed from the "Guile side" to
"Emacs side" through Geiser (the problem may not be Geiser itself, but
some underlying Emacs code). Anyway, now the big portions of guile
data are passed through a temporary file instead, and it is much
faster!
Many thanks to Pierre Neidhardt for the idea of ‘guix-report-bug’ and
‘guix-dependent-packages’ commands, and all credits to Oleg Pykhalov for
inventing and implementing ‘guix-env-var-mode’ and the new features for
‘guix-devel-mode’ (synopsis/description editing and finding a patch with
ffap).
--
Alex
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANN] Emacs-Guix 0.4
2018-05-19 12:58 [ANN] Emacs-Guix 0.4 Alex Kost
@ 2018-05-20 22:55 ` Maxim Cournoyer
2018-05-23 15:30 ` Ludovic Courtès
0 siblings, 1 reply; 8+ messages in thread
From: Maxim Cournoyer @ 2018-05-20 22:55 UTC (permalink / raw)
To: Alex Kost; +Cc: help-guix
Hi Alex,
Alex Kost <alezost@gmail.com> writes:
> Hello, Emacs-Guix (Emacs interface for GNU Guix) version 0.4 has been
> released. If you are not familiar with it yet, you may start with:
> ‘guix package -i emacs-guix’ and "M-x guix-about".
Just wanted to say thank you for this new feature packed release! I look
forward to trying it out :)
Maxim
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANN] Emacs-Guix 0.4
2018-05-20 22:55 ` Maxim Cournoyer
@ 2018-05-23 15:30 ` Ludovic Courtès
2018-05-23 17:46 ` Alex Kost
0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2018-05-23 15:30 UTC (permalink / raw)
To: Maxim Cournoyer; +Cc: Alex Kost, help-guix
Hello!
Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
> Alex Kost <alezost@gmail.com> writes:
>
>> Hello, Emacs-Guix (Emacs interface for GNU Guix) version 0.4 has been
>> released. If you are not familiar with it yet, you may start with:
>> ‘guix package -i emacs-guix’ and "M-x guix-about".
>
> Just wanted to say thank you for this new feature packed release! I look
> forward to trying it out :)
+1 I just tried it out and these new features are awesome, as usual!
‘guix-all-services’ is very cool! (It shows that we lack descriptions
for roughly a third of the services; if you’re reading along, consider
helping out. :-))
I think ‘guix-dependent-packages’ is going to be very useful. I wonder
if we could have ‘C-u guix-dependent-packages’ list only packages that
are direct dependents? That would be helpful in some situations.
Thank you!
Ludo’.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANN] Emacs-Guix 0.4
2018-05-23 15:30 ` Ludovic Courtès
@ 2018-05-23 17:46 ` Alex Kost
2018-05-24 12:16 ` Ludovic Courtès
0 siblings, 1 reply; 8+ messages in thread
From: Alex Kost @ 2018-05-23 17:46 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: help-guix
Ludovic Courtès (2018-05-23 17:30 +0200) wrote:
> Hello!
>
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> Alex Kost <alezost@gmail.com> writes:
>>
>>> Hello, Emacs-Guix (Emacs interface for GNU Guix) version 0.4 has been
>>> released. If you are not familiar with it yet, you may start with:
>>> ‘guix package -i emacs-guix’ and "M-x guix-about".
>>
>> Just wanted to say thank you for this new feature packed release! I look
>> forward to trying it out :)
>
> +1 I just tried it out and these new features are awesome, as usual!
>
> ‘guix-all-services’ is very cool! (It shows that we lack descriptions
> for roughly a third of the services; if you’re reading along, consider
> helping out. :-))
>
> I think ‘guix-dependent-packages’ is going to be very useful. I wonder
> if we could have ‘C-u guix-dependent-packages’ list only packages that
> are direct dependents? That would be helpful in some situations.
I agree! Is there a shell command for this? I mean I'd like to know
what Guile code can do this :-)
Currently, the following code is used to get dependent packages:
(with-store store
(run-with-store store
(mlet %store-monad ((edges (node-back-edges %bag-node-type
(all-packages))))
(return (node-transitive-edges packages edges)))))
--
Alex
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANN] Emacs-Guix 0.4
2018-05-23 17:46 ` Alex Kost
@ 2018-05-24 12:16 ` Ludovic Courtès
2018-05-24 17:21 ` Alex Kost
0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2018-05-24 12:16 UTC (permalink / raw)
To: Alex Kost; +Cc: help-guix
Hello!
Alex Kost <alezost@gmail.com> skribis:
> Ludovic Courtès (2018-05-23 17:30 +0200) wrote:
[...]
>> I think ‘guix-dependent-packages’ is going to be very useful. I wonder
>> if we could have ‘C-u guix-dependent-packages’ list only packages that
>> are direct dependents? That would be helpful in some situations.
>
> I agree! Is there a shell command for this? I mean I'd like to know
> what Guile code can do this :-)
No, there’s no such command. Perhaps something to add to ‘guix refresh
-l’, say ‘guix refresh -l direct’?
> Currently, the following code is used to get dependent packages:
>
> (with-store store
> (run-with-store store
> (mlet %store-monad ((edges (node-back-edges %bag-node-type
> (all-packages))))
> (return (node-transitive-edges packages edges)))))
‘node-transitive-edges’ traverses the whole DAG, so you should simply
call ‘edges’ instead.
HTH!
Ludo’.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANN] Emacs-Guix 0.4
2018-05-24 12:16 ` Ludovic Courtès
@ 2018-05-24 17:21 ` Alex Kost
2018-05-25 1:02 ` myglc2
0 siblings, 1 reply; 8+ messages in thread
From: Alex Kost @ 2018-05-24 17:21 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: help-guix
Ludovic Courtès (2018-05-24 14:16 +0200) wrote:
> Hello!
>
> Alex Kost <alezost@gmail.com> skribis:
>
>> Ludovic Courtès (2018-05-23 17:30 +0200) wrote:
>
> [...]
>
>>> I think ‘guix-dependent-packages’ is going to be very useful. I wonder
>>> if we could have ‘C-u guix-dependent-packages’ list only packages that
>>> are direct dependents? That would be helpful in some situations.
>>
>> I agree! Is there a shell command for this? I mean I'd like to know
>> what Guile code can do this :-)
>
> No, there’s no such command. Perhaps something to add to ‘guix refresh
> -l’, say ‘guix refresh -l direct’?
It would be good!
>> Currently, the following code is used to get dependent packages:
>>
>> (with-store store
>> (run-with-store store
>> (mlet %store-monad ((edges (node-back-edges %bag-node-type
>> (all-packages))))
>> (return (node-transitive-edges packages edges)))))
>
> ‘node-transitive-edges’ traverses the whole DAG, so you should simply
> call ‘edges’ instead.
>
> HTH!
Yes, now it's clear, thanks!
I recalled that C-u prefix is already occupied by specifying an
arbitrary profile for the package commands. So, I'm afraid instead of
"C-u M-x guix-dependent-packages" there will be "M-x
guix-direct-dependent-packages".
Or maybe I should just break this dull "convention" (I mean "C-u" for
profiles) as probably no one uses it anyway :-)
--
Alex
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANN] Emacs-Guix 0.4
2018-05-24 17:21 ` Alex Kost
@ 2018-05-25 1:02 ` myglc2
2018-05-25 19:59 ` Alex Kost
0 siblings, 1 reply; 8+ messages in thread
From: myglc2 @ 2018-05-25 1:02 UTC (permalink / raw)
To: Alex Kost; +Cc: help-guix
Hi Alex,
Thank you for this new release. I am enjoying the cool new features!
On 05/24/2018 at 20:21 Alex Kost writes:
[...]
> I recalled that C-u prefix is already occupied by specifying an
> arbitrary profile for the package commands. So, I'm afraid instead of
> "C-u M-x guix-dependent-packages" there will be "M-x
> guix-direct-dependent-packages".
>
> Or maybe I should just break this dull "convention" (I mean "C-u" for
> profiles) as probably no one uses it anyway :-)
+1
FWIW, ISTM this use of "C-u" is more global than typical and thus feels
a bit counter-intuitive. Since you have made it very easy to jump
between profiles in *Guix Profiles* I think it would be good to switch
to using "C-u" for more command-specific modifications. This might also
help avoid "function bloat in emacs-guix."
HTH - George
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [ANN] Emacs-Guix 0.4
2018-05-25 1:02 ` myglc2
@ 2018-05-25 19:59 ` Alex Kost
0 siblings, 0 replies; 8+ messages in thread
From: Alex Kost @ 2018-05-25 19:59 UTC (permalink / raw)
To: myglc2; +Cc: help-guix
myglc2@gmail.com (2018-05-24 21:02 -0400) wrote:
> Hi Alex,
>
> Thank you for this new release. I am enjoying the cool new features!
>
> On 05/24/2018 at 20:21 Alex Kost writes:
>
> [...]
>
>> I recalled that C-u prefix is already occupied by specifying an
>> arbitrary profile for the package commands. So, I'm afraid instead of
>> "C-u M-x guix-dependent-packages" there will be "M-x
>> guix-direct-dependent-packages".
>>
>> Or maybe I should just break this dull "convention" (I mean "C-u" for
>> profiles) as probably no one uses it anyway :-)
>
> +1
>
> FWIW, ISTM this use of "C-u" is more global than typical and thus feels
> a bit counter-intuitive. Since you have made it very easy to jump
> between profiles in *Guix Profiles* I think it would be good to switch
> to using "C-u" for more command-specific modifications. This might also
> help avoid "function bloat in emacs-guix."
I agree. Although I decided to make another solution for this case:
"M-x guix-dependent-packages" will ask you for the "dependent type" in
the minibuffer: "all" (default) or "direct".
--
Alex
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-05-25 19:59 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-05-19 12:58 [ANN] Emacs-Guix 0.4 Alex Kost
2018-05-20 22:55 ` Maxim Cournoyer
2018-05-23 15:30 ` Ludovic Courtès
2018-05-23 17:46 ` Alex Kost
2018-05-24 12:16 ` Ludovic Courtès
2018-05-24 17:21 ` Alex Kost
2018-05-25 1:02 ` myglc2
2018-05-25 19:59 ` Alex Kost
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).