<feed xmlns='http://www.w3.org/2005/Atom'>
<title>r-alacritty-vte.git/vte_generate_state_changes, branch graphics</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>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>Bump vte_generate_state_changes to 0.2.0</title>
<updated>2025-01-09T07:21:50+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2025-01-09T07:21:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=ff21c30b7a376e93b9a4df4812a05567f27e73fa'/>
<id>ff21c30b7a376e93b9a4df4812a05567f27e73fa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</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>Bump crate versions missing license files</title>
<updated>2024-06-08T07:07:09+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2024-06-08T07:07:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=ebc4a4d7259678a8626f5c269ea9348dfc3e79b2'/>
<id>ebc4a4d7259678a8626f5c269ea9348dfc3e79b2</id>
<content type='text'>
This patch bumps utf8parse/vte_generate_state_changes versions to
release the change which included the license files into the crates.io
package.

Closes #113.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch bumps utf8parse/vte_generate_state_changes versions to
release the change which included the license files into the crates.io
package.

Closes #113.</pre>
</div>
</content>
</entry>
<entry>
<title>Add licenses to vte_generate_state_changes</title>
<updated>2024-01-25T03:17:05+00:00</updated>
<author>
<name>Casey Dahlin</name>
<email>casey.dahlin@gmail.com</email>
</author>
<published>2024-01-25T03:17:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=ed51aa19b7ad060f62a75ec55ebb802ced850b1a'/>
<id>ed51aa19b7ad060f62a75ec55ebb802ced850b1a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Migrate to 2021 edition</title>
<updated>2022-01-16T06:34:22+00:00</updated>
<author>
<name>Kirill Chibisov</name>
<email>contact@kchibisov.com</email>
</author>
<published>2022-01-16T06:34:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=dfac57ef3fdd5ddc884ce7d7559137c5123bae3e'/>
<id>dfac57ef3fdd5ddc884ce7d7559137c5123bae3e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Pass terminator to osc dispatcher</title>
<updated>2020-01-29T15:57:04+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2020-01-29T15:57:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=e61e9652241a8e85ffdbb6dc6e48375e30ea9d40'/>
<id>e61e9652241a8e85ffdbb6dc6e48375e30ea9d40</id>
<content type='text'>
Even though the ST terminator is the only officially supported
terminator, some applications still rely on BEL to work properly. Both
have been supported historically, however there was no way for the
terminal to tell which terminator was used.

Since OSC escapes frequently offer the `?` parameter to query for the
current format, some applications expect the response terminator to
match the request terminator. To make it possible to support this, the
osc_dispatcher is now informed when the BEL terminator was used.

Since the C1 ST terminator was not yet supported for OSC escapes,
support for it has also been added.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Even though the ST terminator is the only officially supported
terminator, some applications still rely on BEL to work properly. Both
have been supported historically, however there was no way for the
terminal to tell which terminator was used.

Since OSC escapes frequently offer the `?` parameter to query for the
current format, some applications expect the response terminator to
match the request terminator. To make it possible to support this, the
osc_dispatcher is now informed when the BEL terminator was used.

Since the C1 ST terminator was not yet supported for OSC escapes,
support for it has also been added.</pre>
</div>
</content>
</entry>
<entry>
<title>Fix outdated URLs</title>
<updated>2020-01-20T22:45:09+00:00</updated>
<author>
<name>Alex Touchet</name>
<email>alextouchet@outlook.com</email>
</author>
<published>2020-01-20T22:45:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=7399615d1f94676b99defff0ebe9a385e26d7199'/>
<id>7399615d1f94676b99defff0ebe9a385e26d7199</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Bump vte_generate_state_changes version to 0.1.1</title>
<updated>2020-01-12T15:57:00+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2020-01-12T15:57:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=1712405055f5d97f6dc7b6156885c940982ec20d'/>
<id>1712405055f5d97f6dc7b6156885c940982ec20d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix 1.36.0 build failure</title>
<updated>2020-01-12T15:47:26+00:00</updated>
<author>
<name>Christian Duerr</name>
<email>contact@christianduerr.com</email>
</author>
<published>2020-01-12T15:47:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/r-alacritty-vte.git/commit/?id=a0b8c325e1bbfa9d403fa279a4914348282d366c'/>
<id>a0b8c325e1bbfa9d403fa279a4914348282d366c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
