[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to add pseudo vector types
From: |
Eli Zaretskii |
Subject: |
Re: How to add pseudo vector types |
Date: |
Sat, 17 Jul 2021 20:54:56 +0300 |
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: emacs-devel@gnu.org
> Date: Sat, 17 Jul 2021 13:30:40 -0400
>
> Clément said:
> > I have no idea if it makes sense, but: does the initial parse need to be
> > synchronous, or could you instead run the parsing in one thread, and the
> > rest of Emacs in another? (I'm talking about concurrent execution, not
> > cooperative threading).
>
> If we copy the buffer's content to a freshly malloc area before passing
> that to TS, then there should be no problem running TS in a separate
> concurrent thread, indeed.
Making a copy of the buffer is a non-starter from where I stand. It
doesn't scale, for starters. I don't see any reason to go to such a
complex design at this early stage.
> Eli said:
> > Why do you update the entire parser list for every modification?
> > This comment:
>
> If having multiple parsers in a single buffer is a not-uncommon case,
> then indeed we'll need to do better, but if we assume this is an
> anomalous situation, then Yuan's code is optimal ;-)
>
> > Yes, I think we should only ask TS to parse what we need, not more.
>
> We'll need to experiment with that.
We can experiment, but I think the basic design should be clean and
reasonable from the get-go.
> Using an approach like `syntax-ppss` where we only parse up to some
> high-watermark might be a good approach, but it's also possible that
> it will work poorly: if TS assumes it works on the whole buffer,
> then it will see the truncated text as a syntax error and while it
> is supposed to handle syntax errors nicely it may still lead to
> suboptimal behavior when parts of perfectly valid code is misparsed
> because the parser was not allowed to see the closing braces that
> make it "perfectly valid".
TS must be able to handle these situation well enough, because they
happen during editing all the time. I wouldn't worry about that,
definitely not at this stage.
Different uses of the parse results will need to pass different chunks
of buffer text, and that is okay.
- Re: How to add pseudo vector types, (continued)
- Re: How to add pseudo vector types, Eli Zaretskii, 2021/07/24
- Re: How to add pseudo vector types, Stephen Leake, 2021/07/25
- Re: How to add pseudo vector types, Clément Pit-Claudel, 2021/07/23
- Re: How to add pseudo vector types, Stephen Leake, 2021/07/21
- Re: How to add pseudo vector types, Clément Pit-Claudel, 2021/07/22
- Re: How to add pseudo vector types, Stefan Monnier, 2021/07/17
- Re: How to add pseudo vector types,
Eli Zaretskii <=
- Re: How to add pseudo vector types, Stefan Monnier, 2021/07/24
- Re: How to add pseudo vector types, Eli Zaretskii, 2021/07/24
- Re: How to add pseudo vector types, Stefan Monnier, 2021/07/24
- Re: How to add pseudo vector types, Eli Zaretskii, 2021/07/24
- Re: How to add pseudo vector types, Yuan Fu, 2021/07/19
- Re: How to add pseudo vector types, Yuan Fu, 2021/07/21
- Re: How to add pseudo vector types, Eli Zaretskii, 2021/07/22
- Re: How to add pseudo vector types, Yuan Fu, 2021/07/22
- Re: How to add pseudo vector types, Óscar Fuentes, 2021/07/22
- Re: How to add pseudo vector types, Eli Zaretskii, 2021/07/22