<feed xmlns='http://www.w3.org/2005/Atom'>
<title>r-alacritty-vte.git/src, branch rahm</title>
<subtitle>Alacritty's VTE library with Rahm's extra hacks.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/'/>
<entry>
<title>Add additional arbitrary script handler.</title>
<updated>2025-02-06T00:34:39+00:00</updated>
<author>
<name>Josh Rahm</name>
<email>rahm@google.com</email>
</author>
<published>2025-02-06T00:34:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=6877a8d9f1e6cd44cecdfd268c804db193d7ece5'/>
<id>6877a8d9f1e6cd44cecdfd268c804db193d7ece5</id>
<content type='text'>
This is a custom extension OSC 117.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a custom extension OSC 117.
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace `no_std` with `std` feature</title>
<updated>2025-01-27T14:55:59+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2025-01-27T14:55:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=35dd9e27a1a32553dc196840122d1beb3ce8c7ff'/>
<id>35dd9e27a1a32553dc196840122d1beb3ce8c7ff</id>
<content type='text'>
The `no_std` feature has been broken since version `0.14`, since it did
not disable the `std` feature of `memchr`.

To fall more in line with the general ecosystem standards, this crate
changes the `no_std` feature into an `std` feature. Since `vte` should
be significantly faster with this feature, it has also been enabled by
default (previously `no_std` was default).

This is a breaking change, even if we ignore `no_std` consumers which
aren't able to compile 0.14, since intermediate dependencies relying on
the `no_std` feature will have to remove it from the manifest.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `no_std` feature has been broken since version `0.14`, since it did
not disable the `std` feature of `memchr`.

To fall more in line with the general ecosystem standards, this crate
changes the `no_std` feature into an `std` feature. Since `vte` should
be significantly faster with this feature, it has also been enabled by
default (previously `no_std` was default).

This is a breaking change, even if we ignore `no_std` consumers which
aren't able to compile 0.14, since intermediate dependencies relying on
the `no_std` feature will have to remove it from the manifest.</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for DECST8C</title>
<updated>2025-01-17T12:44:03+00:00</updated>
<author>
<name>Ayman Bagabas</name>
<email>ayman.bagabas@gmail.com</email>
</author>
<published>2025-01-17T12:44:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=9c45ce63039f0d4a9fb077a546cdd1e969a49df3'/>
<id>9c45ce63039f0d4a9fb077a546cdd1e969a49df3</id>
<content type='text'>
See https://vt100.net/docs/vt510-rm/DECST8C.html.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See https://vt100.net/docs/vt510-rm/DECST8C.html.</pre>
</div>
</content>
</entry>
<entry>
<title>Rewrite table based state change to `match` based</title>
<updated>2025-01-12T19:54:18+00:00</updated>
<author>
<name>Kirill Chibisov</name>
<email>contact@kchibisov.com</email>
</author>
<published>2025-01-12T19:54:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=b3fba5651a264d164d840bfd4f8f0a30fa0b555b'/>
<id>b3fba5651a264d164d840bfd4f8f0a30fa0b555b</id>
<content type='text'>
The table based state change was too complex to make guesses why it's
getting slow and too fragile, as in modifying the amount of
states/actions were slowing down, even though, they were not used.

Rewrite the state + action change exactly how it's in [1] with respect
to our modifications/C1, etc. The new implementation is generally faster
than the previous one and is easier for compiler to reason about and
generate more efficient structures.

Also, the structure got way simpler to follow, since it matches the
spec pretty much exactly.

[1] - https://vt100.net/emu/dec_ansi_parser</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The table based state change was too complex to make guesses why it's
getting slow and too fragile, as in modifying the amount of
states/actions were slowing down, even though, they were not used.

Rewrite the state + action change exactly how it's in [1] with respect
to our modifications/C1, etc. The new implementation is generally faster
than the previous one and is easier for compiler to reason about and
generate more efficient structures.

Also, the structure got way simpler to follow, since it matches the
spec pretty much exactly.

[1] - https://vt100.net/emu/dec_ansi_parser</pre>
</div>
</content>
</entry>
<entry>
<title>Fix crash when valid char was split</title>
<updated>2025-01-12T08:59:01+00:00</updated>
<author>
<name>Kirill Chibisov</name>
<email>contact@kchibisov.com</email>
</author>
<published>2025-01-12T08:59:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=c18ef2206af630f729835da237381628650005aa'/>
<id>c18ef2206af630f729835da237381628650005aa</id>
<content type='text'>
If the valid character was split across reads of partial utf8 and
got terminated by invalid byte, we should print it and advance, instead
of trying to discard it entirely.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the valid character was split across reads of partial utf8 and
got terminated by invalid byte, we should print it and advance, instead
of trying to discard it entirely.</pre>
</div>
</content>
</entry>
<entry>
<title>Switch parser to multi-byte processing</title>
<updated>2025-01-09T06:27:15+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2025-01-09T06:27:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=7321a442a6fc0fc5b6d6ed7af364477d25e706fd'/>
<id>7321a442a6fc0fc5b6d6ed7af364477d25e706fd</id>
<content type='text'>
This patch overhauls the `Parser::advance` API to operate on byte slices
instead of individual bytes, which allows for additional performance
optimizations.

VTE does not support C1 escapes and C0 escapes always start with an
escape character. This makes it possible to simplify processing if a
byte stream is determined to not contain any escapes. The `memchr` crate
provides a battle-tested implementation for SIMD-accelerated byte
searches, which is why this implementation makes use of it.

VTE also only supports UTF8 characters in the ground state, which means
that the new non-escape parsing path is able to rely completely on STD's
`str::from_utf8` since `memchr` gives us the full length of the plain
text character buffer. This allows us to completely remove `utf8parse`
and all related code.

We also make use of `memchr` in the synchronized escape handling in
`ansi.rs`, since it relies heavily on scanning large amounts of text for
the extension/termination escape sequences.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch overhauls the `Parser::advance` API to operate on byte slices
instead of individual bytes, which allows for additional performance
optimizations.

VTE does not support C1 escapes and C0 escapes always start with an
escape character. This makes it possible to simplify processing if a
byte stream is determined to not contain any escapes. The `memchr` crate
provides a battle-tested implementation for SIMD-accelerated byte
searches, which is why this implementation makes use of it.

VTE also only supports UTF8 characters in the ground state, which means
that the new non-escape parsing path is able to rely completely on STD's
`str::from_utf8` since `memchr` gives us the full length of the plain
text character buffer. This allows us to completely remove `utf8parse`
and all related code.

We also make use of `memchr` in the synchronized escape handling in
`ansi.rs`, since it relies heavily on scanning large amounts of text for
the extension/termination escape sequences.</pre>
</div>
</content>
</entry>
<entry>
<title>Improve attrs_from_sgr_parameters performance</title>
<updated>2024-12-28T21:18:14+00:00</updated>
<author>
<name>Kirill Chibisov</name>
<email>contact@kchibisov.com</email>
</author>
<published>2024-12-28T21:18:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=40af63902e0af313722dfdc19a6d10a1d2ba29f4'/>
<id>40af63902e0af313722dfdc19a6d10a1d2ba29f4</id>
<content type='text'>
Instead of collecting all the data into the vector just dispatch it
right away avoiding allocations.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of collecting all the data into the vector just dispatch it
right away avoiding allocations.</pre>
</div>
</content>
</entry>
<entry>
<title>Add SCP control support</title>
<updated>2024-04-01T12:38:46+00:00</updated>
<author>
<name>Mohammad AlSaleh</name>
<email>CE.Mohammad.Alsaleh@gmail.com</email>
</author>
<published>2024-04-01T12:38:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=a971e86f8545cd4fe9ed4fd28e31758e9460c6ed'/>
<id>a971e86f8545cd4fe9ed4fd28e31758e9460c6ed</id>
<content type='text'>
Modern usage of this control function comes from the BiDi draft
proposal:

https://terminal-wg.pages.freedesktop.org/bidi/recommendation/escape-sequences.html

The draft slightly extends the definition in ECMA-48.

Signed-off-by: Mohammad AlSaleh &lt;CE.Mohammad.AlSaleh@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Modern usage of this control function comes from the BiDi draft
proposal:

https://terminal-wg.pages.freedesktop.org/bidi/recommendation/escape-sequences.html

The draft slightly extends the definition in ECMA-48.

Signed-off-by: Mohammad AlSaleh &lt;CE.Mohammad.AlSaleh@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for DECRQM/DECRPM</title>
<updated>2023-11-17T03:20:19+00:00</updated>
<author>
<name>Kirill Chibisov</name>
<email>contact@kchibisov.com</email>
</author>
<published>2023-11-17T03:20:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=0f59335e6dd1e50e97003d4893e20f6bf71a9752'/>
<id>0f59335e6dd1e50e97003d4893e20f6bf71a9752</id>
<content type='text'>
Fixes #100.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #100.</pre>
</div>
</content>
</entry>
<entry>
<title>Split-out `PrivateMode` from 'Mode'</title>
<updated>2023-11-17T01:30:32+00:00</updated>
<author>
<name>Kirill Chibisov</name>
<email>contact@kchibisov.com</email>
</author>
<published>2023-11-17T01:30:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=4fb1594a30d0c60653811496f845137f4420f7cd'/>
<id>4fb1594a30d0c60653811496f845137f4420f7cd</id>
<content type='text'>
The modes could overlap and there's also no way to actually
forward information about unhandled modes downstream, thus
split the modes into 2 separate structures and pass unhandled
modes.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The modes could overlap and there's also no way to actually
forward information about unhandled modes downstream, thus
split the modes into 2 separate structures and pass unhandled
modes.</pre>
</div>
</content>
</entry>
</feed>
