[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cc-mode fontification feels random

From: Daniel Colascione
Subject: Re: cc-mode fontification feels random
Date: Fri, 4 Jun 2021 11:36:05 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1

On 6/4/21 11:25 AM, Stefan Monnier wrote:
But I don't understand what's stopping these tree-sitter C modules (like
[1] and [2]) to have access to the buffer's contents directly and have
the best of both worlds.
I think it's a direct result of them being "modules": the API doesn't
let modules access a buffer's content directly, so it's more efficient
copy the content via `buffer-substring` and toss it on the other side
than having to use something like `char-after`.

The problem is more fundamental than that. Internally, each buffer has a gap. External tools that operate on char arrays don't expect a gap. (They also don't expect to operate on Emacs internal coding, but that's another issue.) If we *did* grant direct buffer access via modules, we'd at least have to memcpy half (on average) the buffer to close the gap, then memcpy half the buffer (on average) to open the gap again when we began editing. If we're going to copy anyway, let's just copy via the buffer-substring interface. There's no reason that it has to be particularly inefficient.

Besides, memory copies are really, really, ridiculously fast. My system can cat from /dev/zero to /dev/null at ~18GB/sec. Copying a buffer's contents so we can give it to tree-sitter should be no issue at all.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]