unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* What does use-package do?
  2022-09-29  8:36                   ` Philip Kaludercic
@ 2022-10-07 22:47                     ` Richard Stallman
  2022-10-08  4:50                       ` John Wiegley
  0 siblings, 1 reply; 15+ messages in thread
From: Richard Stallman @ 2022-10-07 22:47 UTC (permalink / raw)
  To: Philip Kaludercic
  Cc: eliz, yandros, emacs-devel, larsi, relekarpayas, jwiegley

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

Can someone send me a self-contained description of the job
use-package does, from a user's perspective?

I'm not asking about how it does that job, or how it works.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
@ 2022-10-08  4:38 Payas Relekar
  2022-10-08  6:55 ` Eli Zaretskii
  2022-10-08 12:46 ` Akib Azmain Turja
  0 siblings, 2 replies; 15+ messages in thread
From: Payas Relekar @ 2022-10-08  4:38 UTC (permalink / raw)
  To: emacs-devel

Richard Stallman <rms@gnu.org> writes:

> Can someone send me a self-contained description of the job
> use-package does, from a user's perspective?
>
> I'm not asking about how it does that job, or how it works.

use-package allows writing emacs configuration in a declarative manner,
rather than imperative. It does few more things:

- Describe autoload dependencies by means of packages, commands, hooks
  and keybindings, allowing faster startup without affecting UX
- Allow configuring/executing stuff before/after package loading
- Isolate configuration for individual packages in separate
  s-expressions.

In general, making things declarative has had huge improvement in my
config debug-ability, despite having 170+ packages currently loaded,
without significantly increasing startup time.

--



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
  2022-10-07 22:47                     ` What does use-package do? Richard Stallman
@ 2022-10-08  4:50                       ` John Wiegley
  0 siblings, 0 replies; 15+ messages in thread
From: John Wiegley @ 2022-10-08  4:50 UTC (permalink / raw)
  To: Richard Stallman, Philip Kaludercic
  Cc: Eli Zaretskii, yandros, emacs-devel, larsi, relekarpayas

It allows the user to declaratively configure a required package. There are several “best practices” when writing startup config that will load quickly and efficiently, and use-package effectively abstracts these practices for the user.

I originally wrote it to eliminate a lot of boilerplate and duplication in my own high efficiency unit.el file (with hundreds of packages configured, but less than one second Emacs load time).

John

On Fri, Oct 7, 2022, at 6:47 PM, Richard Stallman wrote:
> [[[ To any NSA and FBI agents reading my email: please consider    ]]]
> [[[ whether defending the US Constitution against all enemies,     ]]]
> [[[ foreign or domestic, requires you to follow Snowden's example. ]]]
>
> Can someone send me a self-contained description of the job
> use-package does, from a user's perspective?
>
> I'm not asking about how it does that job, or how it works.
>
> -- 
> Dr Richard Stallman (https://stallman.org)
> Chief GNUisance of the GNU Project (https://gnu.org)
> Founder, Free Software Foundation (https://fsf.org)
> Internet Hall-of-Famer (https://internethalloffame.org)



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
  2022-10-08  4:38 What does use-package do? Payas Relekar
@ 2022-10-08  6:55 ` Eli Zaretskii
  2022-10-08 22:34   ` Richard Stallman
  2022-10-08 12:46 ` Akib Azmain Turja
  1 sibling, 1 reply; 15+ messages in thread
From: Eli Zaretskii @ 2022-10-08  6:55 UTC (permalink / raw)
  To: Payas Relekar; +Cc: emacs-devel

> From: Payas Relekar <relekarpayas@gmail.com>
> Date: Sat, 08 Oct 2022 10:08:38 +0530
> 
> Richard Stallman <rms@gnu.org> writes:
> 
> > Can someone send me a self-contained description of the job
> > use-package does, from a user's perspective?
> >
> > I'm not asking about how it does that job, or how it works.
> 
> use-package allows writing emacs configuration in a declarative manner,
> rather than imperative. It does few more things:
> 
> - Describe autoload dependencies by means of packages, commands, hooks
>   and keybindings, allowing faster startup without affecting UX
> - Allow configuring/executing stuff before/after package loading
> - Isolate configuration for individual packages in separate
>   s-expressions.
> 
> In general, making things declarative has had huge improvement in my
> config debug-ability, despite having 170+ packages currently loaded,
> without significantly increasing startup time.

I think reading this page will be much more effective as the answer to
Richard's questions:

  https://jwiegley.github.io/use-package/keywords/



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
  2022-10-08  4:38 What does use-package do? Payas Relekar
  2022-10-08  6:55 ` Eli Zaretskii
@ 2022-10-08 12:46 ` Akib Azmain Turja
  2022-10-08 23:49   ` Stefan Kangas
  1 sibling, 1 reply; 15+ messages in thread
From: Akib Azmain Turja @ 2022-10-08 12:46 UTC (permalink / raw)
  To: Payas Relekar; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 1508 bytes --]

Payas Relekar <relekarpayas@gmail.com> writes:

> Richard Stallman <rms@gnu.org> writes:
>
>> Can someone send me a self-contained description of the job
>> use-package does, from a user's perspective?
>>
>> I'm not asking about how it does that job, or how it works.
>
> use-package allows writing emacs configuration in a declarative manner,
> rather than imperative. It does few more things:
>
> - Describe autoload dependencies by means of packages, commands, hooks
>   and keybindings, allowing faster startup without affecting UX
> - Allow configuring/executing stuff before/after package loading
> - Isolate configuration for individual packages in separate
>   s-expressions.
>
> In general, making things declarative has had huge improvement in my
> config debug-ability, despite having 170+ packages currently loaded,
> without significantly increasing startup time.
>
> --
>

There is also a GNU ELPA package called Leaf (I'm using it).  It is very
similar to use-package, but somehow I like it more than use-package.
There is also another GNU ELPA called setup.el, which uses
context-sensitive macros to solve the same problem use-package and leaf
solves.  I think I like the setup.el approach, but I'm locked in due to
the heavy use of Leaf in my init file ;-)

-- 
Akib Azmain Turja

Find me on Mastodon at @akib@hostux.social.

This message is signed by me with my GnuPG key.  Its fingerprint is:

    7001 8CE5 819F 17A3 BBA6  66AF E74F 0EFA 922A E7F5

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
  2022-10-08  6:55 ` Eli Zaretskii
@ 2022-10-08 22:34   ` Richard Stallman
  0 siblings, 0 replies; 15+ messages in thread
From: Richard Stallman @ 2022-10-08 22:34 UTC (permalink / raw)
  To: Eli Zaretskii, relekarpayas; +Cc: emacs-devel

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

  > > use-package allows writing emacs configuration in a declarative manner,
  > > rather than imperative. It does few more things:

That is helpful.

  > I think reading this page will be much more effective as the answer to
  > Richard's questions:

  >   https://jwiegley.github.io/use-package/keywords/

I expect that will be helpful too.

Thanks.

-- 
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
  2022-10-08 12:46 ` Akib Azmain Turja
@ 2022-10-08 23:49   ` Stefan Kangas
  2022-10-09 12:44     ` Philip Kaludercic
  0 siblings, 1 reply; 15+ messages in thread
From: Stefan Kangas @ 2022-10-08 23:49 UTC (permalink / raw)
  To: Akib Azmain Turja, Payas Relekar
  Cc: emacs-devel, John Wiegley, Naoya Yamashita

Akib Azmain Turja <akib@disroot.org> writes:

> There is also a GNU ELPA package called Leaf (I'm using it).  It is very
> similar to use-package, but somehow I like it more than use-package.

There was talk of integrating leaf into use-package a year ago.

Did anything happen with that?



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
  2022-10-08 23:49   ` Stefan Kangas
@ 2022-10-09 12:44     ` Philip Kaludercic
  2022-10-09 20:16       ` Stefan Kangas
  0 siblings, 1 reply; 15+ messages in thread
From: Philip Kaludercic @ 2022-10-09 12:44 UTC (permalink / raw)
  To: Stefan Kangas
  Cc: Akib Azmain Turja, Payas Relekar, emacs-devel, John Wiegley,
	Naoya Yamashita

Stefan Kangas <stefankangas@gmail.com> writes:

> Akib Azmain Turja <akib@disroot.org> writes:
>
>> There is also a GNU ELPA package called Leaf (I'm using it).  It is very
>> similar to use-package, but somehow I like it more than use-package.
>
> There was talk of integrating leaf into use-package a year ago.
>
> Did anything happen with that?

Do you remember what thread that was, the only one I remember is
https://yhetil.org/emacs-devel/20201008.103747.1339582189858984269.conao3@gmail.com/.



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
  2022-10-09 12:44     ` Philip Kaludercic
@ 2022-10-09 20:16       ` Stefan Kangas
  2022-10-11  4:46         ` Naoya Yamashita
  0 siblings, 1 reply; 15+ messages in thread
From: Stefan Kangas @ 2022-10-09 20:16 UTC (permalink / raw)
  To: Philip Kaludercic
  Cc: Akib Azmain Turja, Payas Relekar, emacs-devel, John Wiegley,
	Naoya Yamashita

Philip Kaludercic <philipk@posteo.net> writes:

> Do you remember what thread that was, the only one I remember is
> https://yhetil.org/emacs-devel/20201008.103747.1339582189858984269.conao3@gmail.com/.

Yes, that's the one I'm thinking of.

I think you want to start reading at:
https://yhetil.org/emacs-devel/CADwFkm=mSZHeKf0=G7rXhOKOqSxOYWwOQfUv8=7fZWEaDOCTKg@mail.gmail.com/



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
  2022-10-09 20:16       ` Stefan Kangas
@ 2022-10-11  4:46         ` Naoya Yamashita
  2022-10-11  5:13           ` John Wiegley
                             ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Naoya Yamashita @ 2022-10-11  4:46 UTC (permalink / raw)
  To: Stefan Kangas
  Cc: Philip Kaludercic, Akib Azmain Turja, Payas Relekar, emacs-devel,
	John Wiegley

[-- Attachment #1: Type: text/plain, Size: 1813 bytes --]

(I used to send Email from gnus, but I have already lost my gnus
settings and will reply from Gmail.  I hope I get it right.)

> There was talk of integrating leaf into use-package a year ago.

Nothing is going on with integrating leaf and use-package as no
one is working on it.  Honestly, I don't like use-package because
it has surprising behavior that often seems nosy.  That is why
leaf was created, to organize/reduce the features that
use-package has and to give user a better interface, which is
why it cannot be integrated.

On the other hand, I agree that leaf has a puzzling internal
structure.  It has huge conditional branches directly in a list,
dynamically generating S-expressions and eval'ing them.  This
structure makes debugging difficult and adding new features
difficult for new people. (I can do it, though.)  This is why I
am hesitant to have it standardized in Emacs.

In summary, the functionality that use-package already provides
should be sorted out because it contains magic.  The interface
provided by leaf is pretty, but it has a puzzling internal
structure.  I would support a third use-package that should come
standard with Emacs, if there is one.  And some people said that
the name "LEAF" is a bad name.  Hopefully the third use-package
will have a better name.

2022年10月10日(月) 5:16 Stefan Kangas <stefankangas@gmail.com>:

> Philip Kaludercic <philipk@posteo.net> writes:
>
> > Do you remember what thread that was, the only one I remember is
> >
> https://yhetil.org/emacs-devel/20201008.103747.1339582189858984269.conao3@gmail.com/
> .
>
> Yes, that's the one I'm thinking of.
>
> I think you want to start reading at:
>
> https://yhetil.org/emacs-devel/CADwFkm=mSZHeKf0=G7rXhOKOqSxOYWwOQfUv8=7fZWEaDOCTKg@mail.gmail.com/
>

[-- Attachment #2: Type: text/html, Size: 2556 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
  2022-10-11  4:46         ` Naoya Yamashita
@ 2022-10-11  5:13           ` John Wiegley
  2022-10-11  6:15             ` Emanuel Berg
  2022-10-11  6:45           ` Stefan Kangas
  2022-10-11  9:17           ` Philip Kaludercic
  2 siblings, 1 reply; 15+ messages in thread
From: John Wiegley @ 2022-10-11  5:13 UTC (permalink / raw)
  To: Naoya Yamashita
  Cc: Stefan Kangas, Philip Kaludercic, Akib Azmain Turja,
	Payas Relekar, emacs-devel

>>>>> Naoya Yamashita <conao3@gmail.com> writes:

> Honestly, I don't like use-package because it has surprising behavior that
> often seems nosy.  That is why leaf was created, to organize/reduce the
> features that use-package has and to give user a better interface, which is
> why it cannot be integrated.

You have mentioned this a few times, Naoya, but again I'll say that
use-package 2.0 completely reorganized its internal structure so functions are
fully modular and can be added/changed/removed however you wish. I'm not sure
what you mean by "nosy" or "suprising" behavior, but if you wanted you could
revise how _all_ of the declarative keywords behave. Everything is
configurable these days, and this is how the core functionality is implemented
also.

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
  2022-10-11  5:13           ` John Wiegley
@ 2022-10-11  6:15             ` Emanuel Berg
  0 siblings, 0 replies; 15+ messages in thread
From: Emanuel Berg @ 2022-10-11  6:15 UTC (permalink / raw)
  To: emacs-devel

John Wiegley wrote:

>> Honestly, I don't like use-package because it has
>> surprising behavior that often seems nosy.  That is why
>> leaf was created, to organize/reduce the features that
>> use-package has and to give user a better interface, which
>> is why it cannot be integrated.
>
> You have mentioned this a few times, Naoya, but again I'll
> say that use-package 2.0 completely reorganized its internal
> structure so functions are fully modular and can be
> added/changed/removed however you wish. I'm not sure what
> you mean by "nosy" or "suprising" behavior, but if you
> wanted you could revise how _all_ of the declarative
> keywords behave. Everything is configurable these days, and
> this is how the core functionality is implemented also.

Indeed, nothing new ever needs to be created to reduce the
features of something else.

On the contrary, if anything, one should _add_ features!

The interface on the other hand should be mad as easy as
possible to configure even to non-programmers, and one can add
a "style" or "suite" option to give them a head start ...

-- 
underground experts united
https://dataswamp.org/~incal




^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
  2022-10-11  4:46         ` Naoya Yamashita
  2022-10-11  5:13           ` John Wiegley
@ 2022-10-11  6:45           ` Stefan Kangas
  2022-10-11  9:17           ` Philip Kaludercic
  2 siblings, 0 replies; 15+ messages in thread
From: Stefan Kangas @ 2022-10-11  6:45 UTC (permalink / raw)
  To: Naoya Yamashita
  Cc: Philip Kaludercic, Akib Azmain Turja, Payas Relekar, emacs-devel,
	John Wiegley

Naoya Yamashita <conao3@gmail.com> writes:

> Nothing is going on with integrating leaf and use-package as no
> one is working on it.  Honestly, I don't like use-package because
> it has surprising behavior that often seems nosy.  That is why
> leaf was created, to organize/reduce the features that
> use-package has and to give user a better interface, which is
> why it cannot be integrated.

I don't think I understand.  Why would it be impossible to integrate
them?  The packages seem very similar to me.

> In summary, the functionality that use-package already provides
> should be sorted out because it contains magic.

Could you elaborate?

Would you be willing to work on fixing those problems?

> The interface provided by leaf is pretty, but it has a puzzling
> internal structure.  I would support a third use-package that should
> come standard with Emacs, if there is one.

Sadly, there is no such alternative use-package implementation, so I
think we'll have to start out from improving what we have.



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
  2022-10-11  4:46         ` Naoya Yamashita
  2022-10-11  5:13           ` John Wiegley
  2022-10-11  6:45           ` Stefan Kangas
@ 2022-10-11  9:17           ` Philip Kaludercic
  2022-10-11 15:21             ` John Wiegley
  2 siblings, 1 reply; 15+ messages in thread
From: Philip Kaludercic @ 2022-10-11  9:17 UTC (permalink / raw)
  To: Naoya Yamashita
  Cc: Stefan Kangas, Akib Azmain Turja, Payas Relekar, emacs-devel,
	John Wiegley

Naoya Yamashita <conao3@gmail.com> writes:

> (I used to send Email from gnus, but I have already lost my gnus
> settings and will reply from Gmail.  I hope I get it right.)
>
>> There was talk of integrating leaf into use-package a year ago.
>
> Nothing is going on with integrating leaf and use-package as no
> one is working on it.  Honestly, I don't like use-package because
> it has surprising behavior that often seems nosy.  That is why
> leaf was created, to organize/reduce the features that
> use-package has and to give user a better interface, which is
> why it cannot be integrated.
>
> On the other hand, I agree that leaf has a puzzling internal
> structure.  It has huge conditional branches directly in a list,
> dynamically generating S-expressions and eval'ing them.  This
> structure makes debugging difficult and adding new features
> difficult for new people. (I can do it, though.)  This is why I
> am hesitant to have it standardized in Emacs.
>
> In summary, the functionality that use-package already provides
> should be sorted out because it contains magic.  The interface
> provided by leaf is pretty, but it has a puzzling internal
> structure.  I would support a third use-package that should come
> standard with Emacs, if there is one.  And some people said that
> the name "LEAF" is a bad name.  Hopefully the third use-package
> will have a better name.

I am not sure if there is any interest, but my `setup' package[0] might
be such a candidate, when combined with a "declarative to imperative"
translation layer.  I was playing with such a concept a few months
ago[1], but never completed it.  This specific implementation might be
too "cl-generic"-heavy.  But in principle it works:

We start with a declarative expression:

        (use-setup foo
          :init
          (first we have)
          (to eval this)
          :config
          (do this)
          (then that)
          :hook (bar-mode)
          :bind ("C-f" . foo-forward)
          :custom (foo-option t))

which is translated into a `setup'-expression:

        (setup foo
          (:option foo-option t)
          (:bind "C-f" foo-forward)
          (:hook-into bar-mode)
          (:when-loaded :when-loaded
                        (do this))
          (progn
            (to eval this)
            (first we have)))

that then expands to regular code:

        (progn
          (progn
            (custom-load-symbol 'foo-option)
            (funcall
             (or
              (get 'foo-option 'custom-set)
              (function set-default))
             'foo-option t))
          (eval-after-load 'foo
            (function
             (lambda nil
               (define-key foo-mode-map ""
                           (function foo-forward)))))
          (add-hook 'bar-mode-hook
                    (function foo-mode))
          (eval-after-load 'foo
            (function
             (lambda nil
               (do this)
               (then that))))
          (progn
            (to eval this)
            (first we have)))

[0] https://git.sr.ht/~pkal/setup
[1] https://paste.sr.ht/~pkal/4b8519fca721e0ac651d5598f6d582ae92ff84dd

> 2022年10月10日(月) 5:16 Stefan Kangas <stefankangas@gmail.com>:
>
>> Philip Kaludercic <philipk@posteo.net> writes:
>>
>> > Do you remember what thread that was, the only one I remember is
>> >
>> https://yhetil.org/emacs-devel/20201008.103747.1339582189858984269.conao3@gmail.com/
>> .
>>
>> Yes, that's the one I'm thinking of.
>>
>> I think you want to start reading at:
>>
>> https://yhetil.org/emacs-devel/CADwFkm=mSZHeKf0=G7rXhOKOqSxOYWwOQfUv8=7fZWEaDOCTKg@mail.gmail.com/
>>



^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: What does use-package do?
  2022-10-11  9:17           ` Philip Kaludercic
@ 2022-10-11 15:21             ` John Wiegley
  0 siblings, 0 replies; 15+ messages in thread
From: John Wiegley @ 2022-10-11 15:21 UTC (permalink / raw)
  To: Philip Kaludercic
  Cc: Naoya Yamashita, Stefan Kangas, Akib Azmain Turja, Payas Relekar,
	emacs-devel

>>>>> Philip Kaludercic <philipk@posteo.net> writes:

> I am not sure if there is any interest, but my `setup' package[0] might be
> such a candidate, when combined with a "declarative to imperative"
> translation layer. I was playing with such a concept a few months ago[1],
> but never completed it. This specific implementation might be too
> "cl-generic"-heavy. But in principle it works:

This is a very nice idea, I didn't consider having a "canonical intermediate
form". Perhaps because the user would mostly never see it, and the final
result is very much the same. By separating out the processing of declarative
keywords into individual helper functions, I was hoping to make the processing
of each "bit" simple enough so that just macro-expansion would be the only
tool needed to debug when the expanded behavior is unexpected. I still like
the idea very much, though; it speaks to my compiler-writer heart. :)

-- 
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2



^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2022-10-11 15:21 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-08  4:38 What does use-package do? Payas Relekar
2022-10-08  6:55 ` Eli Zaretskii
2022-10-08 22:34   ` Richard Stallman
2022-10-08 12:46 ` Akib Azmain Turja
2022-10-08 23:49   ` Stefan Kangas
2022-10-09 12:44     ` Philip Kaludercic
2022-10-09 20:16       ` Stefan Kangas
2022-10-11  4:46         ` Naoya Yamashita
2022-10-11  5:13           ` John Wiegley
2022-10-11  6:15             ` Emanuel Berg
2022-10-11  6:45           ` Stefan Kangas
2022-10-11  9:17           ` Philip Kaludercic
2022-10-11 15:21             ` John Wiegley
  -- strict thread matches above, loose matches on Subject: below --
2022-09-24 12:56 Progress on merging use-package? Payas Relekar
2022-09-24 14:08 ` Philip Kaludercic
2022-09-24 14:22   ` Payas Relekar
2022-09-24 14:35     ` Philip Kaludercic
2022-09-24 14:36       ` Payas Relekar
2022-09-24 20:24         ` John Wiegley
2022-09-25  2:34           ` Payas Relekar
2022-09-25  8:39             ` Philip Kaludercic
2022-09-28 22:57               ` chad
2022-09-29  8:20                 ` Eli Zaretskii
2022-09-29  8:36                   ` Philip Kaludercic
2022-10-07 22:47                     ` What does use-package do? Richard Stallman
2022-10-08  4:50                       ` John Wiegley

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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).