unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* A proposal for the future of open-paren-in-column-0-is-defun-start.
@ 2020-04-05 13:47 Alan Mackenzie
  2020-04-05 14:33 ` Stefan Monnier
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Alan Mackenzie @ 2020-04-05 13:47 UTC (permalink / raw)
  To: emacs-devel

Hello, Emacs.

The working of open-paren-in-column-0-is-defun-start is still functional
in emacs-27 and master, providing the newish variable
comment-use-syntax-ppss is set to nil.

When enabled, it still causes problems in, at the very least, CC Mode.
For example, in the following:

    /*
    (
    */
      ^
    point

, (forward-comment -1) spuriously returns nil and doesn't move point.

The root of the problem is that back_comment (in syntax.c) has no means
of distinguishing open parens in comments and strings from other open
parens.  I propose giving the function such a means.

This would be a text property `syntax-open-paren-in-literal' which would
be applied to each and every open paren at column zero inside a literal.
back_comment could easily and cheaply test this text-property.

`syntax-open-paren-in-literal' would be applied throughout the buffer
when it is first loaded into Emacs, and would be kept up to date by
"super before/after-change-functions".  (These functions would be called
at buffer changes regardless of the value of inhibit-modification-hooks.
We would want some way of inhibiting them being called on a change of
text properties, for efficiency's sake).

With this mechanism in place, o-p-i-c-0-i-d-s could safely be left
enabled, for speed's sake, without causing the all too familiar bugs in
CC Mode.

What do people think?

-- 
Alan Mackenzie (Nuremberg, Germany).



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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-05 13:47 A proposal for the future of open-paren-in-column-0-is-defun-start Alan Mackenzie
@ 2020-04-05 14:33 ` Stefan Monnier
  2020-04-05 15:23   ` Alan Mackenzie
  2020-04-06  2:37   ` Richard Stallman
  2020-04-06 19:08 ` Dmitry Gutov
  2020-04-06 21:42 ` Stefan Monnier
  2 siblings, 2 replies; 19+ messages in thread
From: Stefan Monnier @ 2020-04-05 14:33 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: emacs-devel

> With this mechanism in place, o-p-i-c-0-i-d-s could safely be left
> enabled, for speed's sake,

FWIW setting `comment-use-syntax-ppss` to nil is likely make things
*slower* in many cases.

This "newish" variable was only introduced so as to have an escape hatch
if it turned out that the new functionality of relying on syntax-ppss
proved problematic.

Given that I haven't seen a single incident reported since that fateful
Dec 12 2017 night, I think we'd be better off removing
`comment-use-syntax-ppss` altogether.


        Stefan




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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-05 14:33 ` Stefan Monnier
@ 2020-04-05 15:23   ` Alan Mackenzie
  2020-04-05 18:39     ` Stefan Monnier
  2020-04-06  2:37   ` Richard Stallman
  1 sibling, 1 reply; 19+ messages in thread
From: Alan Mackenzie @ 2020-04-05 15:23 UTC (permalink / raw)
  To: Stefan Monnier, g; +Cc: emacs-devel

Hello, Stefan.

On Sun, Apr 05, 2020 at 10:33:17 -0400, Stefan Monnier wrote:
> > With this mechanism in place, o-p-i-c-0-i-d-s could safely be left
> > enabled, for speed's sake,

> FWIW setting `comment-use-syntax-ppss` to nil is likely make things
> *slower* in many cases.

Anyhow, the problem with using syntax-ppss here is it involves lots and
lots of scanning over large buffer portions in certain circumstances.
The o-p-i-c-0-i-d-s approach wouldn't.

Also, syntax-ppss doesn't (necessarily) do the right thing on narrowed
buffers, thus potentially leading to errors.  Why don't you make sure
the buffer is widened before using syntax-ppss?

> This "newish" variable was only introduced so as to have an escape hatch
> if it turned out that the new functionality of relying on syntax-ppss
> proved problematic.

Why is the o-p-i-c-0-i-d-s mechanism made dependent on
comment-use-syntax-ppss being nil?

> Given that I haven't seen a single incident reported since that fateful
> Dec 12 2017 night, I think we'd be better off removing
> `comment-use-syntax-ppss` altogether.

Er, Martin reported a delay of 10 seconds when scrolling a buffer with
the mouse wheel.  How does that not cound as an "incident"?

What you mean by your suggestion is to remove
open-paren-in-column-0-is-defun start altogether.

Both Martin and Richard, who have less powerful machines than we do, are
unhappy about this.

Anyway, what exactly happened on 2017-12-12 that qualifies as a fateful
incident?

Also, you haven't commented on my proposal.

>         Stefan

-- 
Alan Mackenzie (Nuremberg, Germany).



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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-05 15:23   ` Alan Mackenzie
@ 2020-04-05 18:39     ` Stefan Monnier
  0 siblings, 0 replies; 19+ messages in thread
From: Stefan Monnier @ 2020-04-05 18:39 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: g, emacs-devel

>> Given that I haven't seen a single incident reported since that fateful
>> Dec 12 2017 night, I think we'd be better off removing
>> `comment-use-syntax-ppss` altogether.
>
> Er, Martin reported a delay of 10 seconds when scrolling a buffer with
> the mouse wheel.  How does that not cound as an "incident"?

I don't see anything in this report that relates it to
`comment-use-syntax-ppss` (nor to `open-paren-in-column-0-is-defun`).

> What you mean by your suggestion is to remove
> open-paren-in-column-0-is-defun start altogether.

No, my suggestion is to remove `comment-use-syntax-ppss` (i.e. remove
the possibility to set it to nil).

> Both Martin and Richard, who have less powerful machines than we do, are
> unhappy about this.

I don't see any reason to think their unhappiness is due to
`open-paren-in-column-0-is-defun` or `comment-use-syntax-ppss`.

> Anyway, what exactly happened on 2017-12-12 that qualifies as a fateful
> incident?

Commit 14b95587520959c5b54356547a0a69932a9bb480!


        Stefan




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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-05 14:33 ` Stefan Monnier
  2020-04-05 15:23   ` Alan Mackenzie
@ 2020-04-06  2:37   ` Richard Stallman
  2020-04-06 15:40     ` Stefan Monnier
  1 sibling, 1 reply; 19+ messages in thread
From: Richard Stallman @ 2020-04-06  2:37 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: acm, 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. ]]]

  > FWIW setting `comment-use-syntax-ppss` to nil is likely make things
  > *slower* in many cases.

In that case, we could arrange for open-paren-in-column-0-is-defun-start
to be heeded _along with_ comment-use-syntax-ppss.

I've seen several arguments which implicitly presume that making
open-paren-in-column-0-is-defun-start work again is impossible or
unthinkable.  That cannot be so.



-- 
Dr Richard Stallman
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] 19+ messages in thread

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-06  2:37   ` Richard Stallman
@ 2020-04-06 15:40     ` Stefan Monnier
  2020-04-06 16:04       ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: Stefan Monnier @ 2020-04-06 15:40 UTC (permalink / raw)
  To: Richard Stallman; +Cc: acm, emacs-devel

> In that case, we could arrange for open-paren-in-column-0-is-defun-start
> to be heeded _along with_ comment-use-syntax-ppss.

Be my guest.  But before accepting such code, I'll want to see some
concrete evidence that it has a real benefit.

So far, all concrete evidence we have has no direct connection to
open-parens-in-column-0 (other than some people's gut feelings).

We should treat this performance problem the same as any other: do the
profiling, look into the code that takes the major part of the time,
look into why it takes so much time, ...

So far we have: scrolling is too slow in some C buffer and the profile
indicates it happens "somewhere in jit-lock".  There's a lot that might
be going on "in jit-lock", so we've barely scratched the surface of
the problem.

My gut feeling is that we're going to find that we're not spending much
of that time in `back_comment` (the C function which used this
open-paren-in-column-0 heuristic).  This seems to be confirmed by the
fact that setting comment-use-syntax-ppss to nil made no difference: the
problem is elsewhere and we're just wasting time discussing this old
heuristic whose time has passed.


        Stefan




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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-06 15:40     ` Stefan Monnier
@ 2020-04-06 16:04       ` Eli Zaretskii
  2020-04-06 16:25         ` Stefan Monnier
  2020-04-07  8:33         ` martin rudalics
  0 siblings, 2 replies; 19+ messages in thread
From: Eli Zaretskii @ 2020-04-06 16:04 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: acm, rms, emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Mon, 06 Apr 2020 11:40:05 -0400
> Cc: acm@muc.de, emacs-devel@gnu.org
> 
> So far we have: scrolling is too slow in some C buffer and the profile
> indicates it happens "somewhere in jit-lock".

Actually, we had a few detailed profiles posted which show many levels
below "somewhere in jit-lock", at least for CC Mode.



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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-06 16:04       ` Eli Zaretskii
@ 2020-04-06 16:25         ` Stefan Monnier
  2020-04-06 16:36           ` Eli Zaretskii
  2020-04-07  8:33         ` martin rudalics
  1 sibling, 1 reply; 19+ messages in thread
From: Stefan Monnier @ 2020-04-06 16:25 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: acm, rms, emacs-devel

> Actually, we had a few detailed profiles posted which show many levels
> below "somewhere in jit-lock", at least for CC Mode.

Hmm... I must have missed them.  Sorry 'bout that.
Do we then know where the time is really spent?


        Stefan




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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-06 16:25         ` Stefan Monnier
@ 2020-04-06 16:36           ` Eli Zaretskii
  2020-04-06 17:49             ` Stefan Monnier
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2020-04-06 16:36 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: acm, rms, emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: rms@gnu.org,  acm@muc.de,  emacs-devel@gnu.org
> Date: Mon, 06 Apr 2020 12:25:51 -0400
> 
> > Actually, we had a few detailed profiles posted which show many levels
> > below "somewhere in jit-lock", at least for CC Mode.
> 
> Hmm... I must have missed them.  Sorry 'bout that.
> Do we then know where the time is really spent?

I think the profiles do show that, at least for CC Mode when
fontifying a C buffer (xdisp.c).

I do agree, of course, that we should profile and measure more before
making any firm conclusions.  But let's not dismiss what we already
have.



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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-06 16:36           ` Eli Zaretskii
@ 2020-04-06 17:49             ` Stefan Monnier
  2020-04-06 18:16               ` Eli Zaretskii
  2020-04-06 18:32               ` andres.ramirez
  0 siblings, 2 replies; 19+ messages in thread
From: Stefan Monnier @ 2020-04-06 17:49 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: acm, rms, emacs-devel

>> > Actually, we had a few detailed profiles posted which show many levels
>> > below "somewhere in jit-lock", at least for CC Mode.
>> Hmm... I must have missed them.  Sorry 'bout that.
>> Do we then know where the time is really spent?
> I think the profiles do show that, at least for CC Mode when
> fontifying a C buffer (xdisp.c).

Sadly, I don't know what they say.  Could someone point me to the
corresponding message(s) (either pointers to the emacs-devel archive or
message-ids would do fine).


        Stefan




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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-06 17:49             ` Stefan Monnier
@ 2020-04-06 18:16               ` Eli Zaretskii
  2020-04-06 18:32               ` andres.ramirez
  1 sibling, 0 replies; 19+ messages in thread
From: Eli Zaretskii @ 2020-04-06 18:16 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: acm, rms, emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: rms@gnu.org,  acm@muc.de,  emacs-devel@gnu.org
> Date: Mon, 06 Apr 2020 13:49:10 -0400
> 
> > I think the profiles do show that, at least for CC Mode when
> > fontifying a C buffer (xdisp.c).
> 
> Sadly, I don't know what they say.  Could someone point me to the
> corresponding message(s) (either pointers to the emacs-devel archive or
> message-ids would do fine).

Sorry, I didn't realize you were unable to find them.  Here:

  https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg00010.html
  https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg00025.html



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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-06 17:49             ` Stefan Monnier
  2020-04-06 18:16               ` Eli Zaretskii
@ 2020-04-06 18:32               ` andres.ramirez
  1 sibling, 0 replies; 19+ messages in thread
From: andres.ramirez @ 2020-04-06 18:32 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: acm, Eli Zaretskii, rms, emacs-devel

Hi. Stefan.

Stefan> Sadly, I don't know what they say.  Could someone point me to
Stefan> the corresponding message(s) (either pointers to the
Stefan> emacs-devel archive or message-ids would do fine).

https://lists.gnu.org/archive/html/emacs-devel/2020-03/msg00720.html

Best Regards





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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-05 13:47 A proposal for the future of open-paren-in-column-0-is-defun-start Alan Mackenzie
  2020-04-05 14:33 ` Stefan Monnier
@ 2020-04-06 19:08 ` Dmitry Gutov
  2020-04-06 21:42 ` Stefan Monnier
  2 siblings, 0 replies; 19+ messages in thread
From: Dmitry Gutov @ 2020-04-06 19:08 UTC (permalink / raw)
  To: Alan Mackenzie, emacs-devel

Hi Alan,

On 05.04.2020 16:47, Alan Mackenzie wrote:
> `syntax-open-paren-in-literal' would be applied throughout the buffer
> when it is first loaded into Emacs, and would be kept up to date by
> "super before/after-change-functions".  (These functions would be called
> at buffer changes regardless of the value of inhibit-modification-hooks.
> We would want some way of inhibiting them being called on a change of
> text properties, for efficiency's sake).
> 
> With this mechanism in place, o-p-i-c-0-i-d-s could safely be left
> enabled, for speed's sake, without causing the all too familiar bugs in
> CC Mode.
> 
> What do people think?

While I'm not convinced that syntax-ppss is a significant bottleneck 
now, nor crazy about the idea of yet another kind of hooks which will 
have to scan the whole buffer after every buffer change, I say go for 
it. :-)

The proposed approach seems easy enough to implement, and then you could 
do some real-world benchmarks (something like: 1. scrolling 50 times, 2. 
typing new code in a big file, 3. simply visiting a big file), compare 
and see what improved, and what didn't, and by how much. Then we'd have 
something to discuss, at least.



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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-05 13:47 A proposal for the future of open-paren-in-column-0-is-defun-start Alan Mackenzie
  2020-04-05 14:33 ` Stefan Monnier
  2020-04-06 19:08 ` Dmitry Gutov
@ 2020-04-06 21:42 ` Stefan Monnier
  2020-04-06 21:58   ` Dmitry Gutov
  2 siblings, 1 reply; 19+ messages in thread
From: Stefan Monnier @ 2020-04-06 21:42 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: emacs-devel

> `syntax-open-paren-in-literal' would be applied throughout the buffer
> when it is first loaded into Emacs,

I.e. whole-buffer parsing when opening a file.


        Stefan




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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-06 21:42 ` Stefan Monnier
@ 2020-04-06 21:58   ` Dmitry Gutov
  2020-04-06 23:44     ` Stefan Monnier
  0 siblings, 1 reply; 19+ messages in thread
From: Dmitry Gutov @ 2020-04-06 21:58 UTC (permalink / raw)
  To: Stefan Monnier, Alan Mackenzie; +Cc: emacs-devel

On 07.04.2020 00:42, Stefan Monnier wrote:
>> `syntax-open-paren-in-literal' would be applied throughout the buffer
>> when it is first loaded into Emacs,
> I.e. whole-buffer parsing when opening a file.

Which CC Mode does anyway already. ¯\_(ツ)_/¯

Other modes could conceivably apply it in syntax-propertize-function 
instead. 👺 Though I doubt its applicability considering not a lot of 
programming languages routinely have open parens in the first column.



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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-06 21:58   ` Dmitry Gutov
@ 2020-04-06 23:44     ` Stefan Monnier
  0 siblings, 0 replies; 19+ messages in thread
From: Stefan Monnier @ 2020-04-06 23:44 UTC (permalink / raw)
  To: Dmitry Gutov; +Cc: Alan Mackenzie, emacs-devel

> Which CC Mode does anyway already. ¯\_(ツ)_/¯

And so does tree-sitter, yes.

> Other modes could conceivably apply it in syntax-propertize-function
> instead. 👺 Though I doubt its applicability considering not a lot of
> programming languages routinely have open parens in the first column.

Fair enough,


        Stefan




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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-06 16:04       ` Eli Zaretskii
  2020-04-06 16:25         ` Stefan Monnier
@ 2020-04-07  8:33         ` martin rudalics
  2020-04-07 13:47           ` Stefan Monnier
  2020-04-07 14:06           ` Eli Zaretskii
  1 sibling, 2 replies; 19+ messages in thread
From: martin rudalics @ 2020-04-07  8:33 UTC (permalink / raw)
  To: Eli Zaretskii, Stefan Monnier; +Cc: acm, rms, emacs-devel

 > Actually, we had a few detailed profiles posted which show many levels
 > below "somewhere in jit-lock", at least for CC Mode.

When comparing -O0 with -O3 builds I noticed one additional difference
with simple repetitions of 'scroll-up' in xdisp.c.  The optimized build
spent 25% of the CPU time consumed collecting garbage, the debug build
42%.  Does an -O0 build produce more garbage or is it collecting slower?

martin



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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-07  8:33         ` martin rudalics
@ 2020-04-07 13:47           ` Stefan Monnier
  2020-04-07 14:06           ` Eli Zaretskii
  1 sibling, 0 replies; 19+ messages in thread
From: Stefan Monnier @ 2020-04-07 13:47 UTC (permalink / raw)
  To: martin rudalics; +Cc: acm, Eli Zaretskii, rms, emacs-devel

>> Actually, we had a few detailed profiles posted which show many levels
>> below "somewhere in jit-lock", at least for CC Mode.
> When comparing -O0 with -O3 builds I noticed one additional difference
> with simple repetitions of 'scroll-up' in xdisp.c.  The optimized build
> spent 25% of the CPU time consumed collecting garbage, the debug build
> 42%.  Does an -O0 build produce more garbage or is it collecting slower?

I'd guess that it's just the fact that the GC spends almost all its time
manipulating Lisp_Object values, so it is more affected by inlining of
those low-level functions that extract the tag and things like that.


        Stefan




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

* Re: A proposal for the future of open-paren-in-column-0-is-defun-start.
  2020-04-07  8:33         ` martin rudalics
  2020-04-07 13:47           ` Stefan Monnier
@ 2020-04-07 14:06           ` Eli Zaretskii
  1 sibling, 0 replies; 19+ messages in thread
From: Eli Zaretskii @ 2020-04-07 14:06 UTC (permalink / raw)
  To: martin rudalics; +Cc: acm, emacs-devel, monnier, rms

> Cc: acm@muc.de, rms@gnu.org, emacs-devel@gnu.org
> From: martin rudalics <rudalics@gmx.at>
> Date: Tue, 7 Apr 2020 10:33:58 +0200
> 
>  > Actually, we had a few detailed profiles posted which show many levels
>  > below "somewhere in jit-lock", at least for CC Mode.
> 
> When comparing -O0 with -O3 builds I noticed one additional difference
> with simple repetitions of 'scroll-up' in xdisp.c.  The optimized build
> spent 25% of the CPU time consumed collecting garbage, the debug build
> 42%.  Does an -O0 build produce more garbage or is it collecting slower?

I think the latter.  I don't think --enable-checking causes
significantly more Lisp object to be produced.  GC is very recursive,
so optimizations that put variables in registers make it faster.



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

end of thread, other threads:[~2020-04-07 14:06 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-05 13:47 A proposal for the future of open-paren-in-column-0-is-defun-start Alan Mackenzie
2020-04-05 14:33 ` Stefan Monnier
2020-04-05 15:23   ` Alan Mackenzie
2020-04-05 18:39     ` Stefan Monnier
2020-04-06  2:37   ` Richard Stallman
2020-04-06 15:40     ` Stefan Monnier
2020-04-06 16:04       ` Eli Zaretskii
2020-04-06 16:25         ` Stefan Monnier
2020-04-06 16:36           ` Eli Zaretskii
2020-04-06 17:49             ` Stefan Monnier
2020-04-06 18:16               ` Eli Zaretskii
2020-04-06 18:32               ` andres.ramirez
2020-04-07  8:33         ` martin rudalics
2020-04-07 13:47           ` Stefan Monnier
2020-04-07 14:06           ` Eli Zaretskii
2020-04-06 19:08 ` Dmitry Gutov
2020-04-06 21:42 ` Stefan Monnier
2020-04-06 21:58   ` Dmitry Gutov
2020-04-06 23:44     ` Stefan Monnier

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