<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/src/nvim/generators/gen_api_dispatch.lua, branch usermarks</title>
<subtitle>Neovim fork with Rahm's personal hacks.</subtitle>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/'/>
<entry>
<title>build: make generated source files reproducible #21586</title>
<updated>2023-01-23T09:26:46+00:00</updated>
<author>
<name>Arnout Engelen</name>
<email>arnout@engelen.eu</email>
</author>
<published>2023-01-23T09:26:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=cb757f2663e6950e655c6306d713338dfa66b18d'/>
<id>cb757f2663e6950e655c6306d713338dfa66b18d</id>
<content type='text'>
Problem:
Build is not reproducible, because generated source files (.c/.h/) are not
deterministic, mostly because Lua pairs() is unordered by design (for security).

https://github.com/LuaJIT/LuaJIT/issues/626#issuecomment-707005671
https://www.lua.org/manual/5.1/manual.html#pdf-next
&gt; The order in which the indices are enumerated is not specified [...]
&gt;
&gt;&gt; The hardening of the VM deliberately randomizes string hashes. This in
&gt;&gt; turn randomizes the iteration order of tables with string keys.

Solution:
- Update the code generation scripts to be deterministic.
    - That is only a partial solution: the exported function
      (funcs_metadata.generated.h) and ui event
      (ui_events_metadata.generated.h) metadata have some mpack'ed
      tables, which are not serialized deterministically.
    - As a workaround, introduce `PRG_GEN_LUA` cmake setting, so you can
      inject a modified build of luajit (with LUAJIT_SECURITY_PRN=0)
      that preserves table order.
    - Longer-term we should change the mpack'ed data structure so it no
      longer uses tables keyed by strings.

Closes #20124

Co-Authored-By: dundargoc &lt;gocdundar@gmail.com&gt;
Co-Authored-By: Arnout Engelen &lt;arnout@bzzt.net&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Build is not reproducible, because generated source files (.c/.h/) are not
deterministic, mostly because Lua pairs() is unordered by design (for security).

https://github.com/LuaJIT/LuaJIT/issues/626#issuecomment-707005671
https://www.lua.org/manual/5.1/manual.html#pdf-next
&gt; The order in which the indices are enumerated is not specified [...]
&gt;
&gt;&gt; The hardening of the VM deliberately randomizes string hashes. This in
&gt;&gt; turn randomizes the iteration order of tables with string keys.

Solution:
- Update the code generation scripts to be deterministic.
    - That is only a partial solution: the exported function
      (funcs_metadata.generated.h) and ui event
      (ui_events_metadata.generated.h) metadata have some mpack'ed
      tables, which are not serialized deterministically.
    - As a workaround, introduce `PRG_GEN_LUA` cmake setting, so you can
      inject a modified build of luajit (with LUAJIT_SECURITY_PRN=0)
      that preserves table order.
    - Longer-term we should change the mpack'ed data structure so it no
      longer uses tables keyed by strings.

Closes #20124

Co-Authored-By: dundargoc &lt;gocdundar@gmail.com&gt;
Co-Authored-By: Arnout Engelen &lt;arnout@bzzt.net&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>docs: fix typos (#21427)</title>
<updated>2023-01-03T23:38:48+00:00</updated>
<author>
<name>dundargoc</name>
<email>33953936+dundargoc@users.noreply.github.com</email>
</author>
<published>2023-01-03T23:38:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=936e191fef9865600af211c29ea4959ffbce81dd'/>
<id>936e191fef9865600af211c29ea4959ffbce81dd</id>
<content type='text'>
Co-authored-by: Gustavo Sampaio &lt;gbritosampaio@gmail.com&gt;
Co-authored-by: C.D. MacEachern &lt;craig.daniel.maceachern@gmail.com&gt;
Co-authored-by: Sean Dewar &lt;seandewar@users.noreply.github.com&gt;
Co-authored-by: Tomas Nemec &lt;nemi@skaut.cz&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Gustavo Sampaio &lt;gbritosampaio@gmail.com&gt;
Co-authored-by: C.D. MacEachern &lt;craig.daniel.maceachern@gmail.com&gt;
Co-authored-by: Sean Dewar &lt;seandewar@users.noreply.github.com&gt;
Co-authored-by: Tomas Nemec &lt;nemi@skaut.cz&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>fix(tui): more work in the TUI</title>
<updated>2022-12-31T12:25:26+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-05-02T19:10:01+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=43e8ec92de9e0850e7d202cb7ff9051bc408447e'/>
<id>43e8ec92de9e0850e7d202cb7ff9051bc408447e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(tui): run TUI as external process</title>
<updated>2022-12-31T09:43:28+00:00</updated>
<author>
<name>hlpr98</name>
<email>hlpr98@gmail.com</email>
</author>
<published>2019-05-27T16:34:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=24488169564c39a506c235bf6a33b8e23a8cb528'/>
<id>24488169564c39a506c235bf6a33b8e23a8cb528</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>build: allow IWYU to fix includes for all .c files</title>
<updated>2022-11-15T09:30:03+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2022-09-11T15:12:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=66360675cf4d091b7460e4a8e1435c13216c1929'/>
<id>66360675cf4d091b7460e4a8e1435c13216c1929</id>
<content type='text'>
Allow Include What You Use to remove unnecessary includes and only
include what is necessary. This helps with reducing compilation times
and makes it easier to visualise which dependencies are actually
required.

Work on https://github.com/neovim/neovim/issues/549, but doesn't close
it since this only works fully for .c files and not headers.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allow Include What You Use to remove unnecessary includes and only
include what is necessary. This helps with reducing compilation times
and makes it easier to visualise which dependencies are actually
required.

Work on https://github.com/neovim/neovim/issues/549, but doesn't close
it since this only works fully for .c files and not headers.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(lua-api): avoid unnecessary allocations (#19877)</title>
<updated>2022-11-14T18:04:36+00:00</updated>
<author>
<name>Lewis Russell</name>
<email>lewis6991@gmail.com</email>
</author>
<published>2022-11-14T18:04:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=f8c671827710c6e9cca3bfd60c32098b2be8239a'/>
<id>f8c671827710c6e9cca3bfd60c32098b2be8239a</id>
<content type='text'>
Lua makes (or reuses) an internal copy of strings, so we can safely push
buf pointers onto the stack.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Lua makes (or reuses) an internal copy of strings, so we can safely push
buf pointers onto the stack.</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(arena): use a shared block freelist</title>
<updated>2022-08-24T12:22:26+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-08-23T08:36:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=bcf5ee328e228d5a536b4de2069a79234f9f3e9e'/>
<id>bcf5ee328e228d5a536b4de2069a79234f9f3e9e</id>
<content type='text'>
This is both simpler in client code and more effective (always reuse
block hottest in cache)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is both simpler in client code and more effective (always reuse
block hottest in cache)
</pre>
</div>
</content>
</entry>
<entry>
<title>perf(api): allow to use an arena for return values</title>
<updated>2022-08-23T16:34:24+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-08-23T07:33:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=c0d60526541a3cf977ae623471ae4a347b492af1'/>
<id>c0d60526541a3cf977ae623471ae4a347b492af1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(rpc): break nvim_error_event feedback loop between two nvim instances</title>
<updated>2022-07-19T10:38:37+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-07-09T12:48:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=f87c8245133dd8116a9bab2d2e89f9b26967c7a8'/>
<id>f87c8245133dd8116a9bab2d2e89f9b26967c7a8</id>
<content type='text'>
In case nvim A sends nvim_error_event to nvim B, it would
respond with another nvim_error_event due to unknown
request name. Fix this by adding dummy request handler for now.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In case nvim A sends nvim_error_event to nvim B, it would
respond with another nvim_error_event due to unknown
request name. Fix this by adding dummy request handler for now.
</pre>
</div>
</content>
</entry>
<entry>
<title>vim-patch:8.2.0614: get ml_get error when deleting a line in 'completefunc' (#19244)</title>
<updated>2022-07-06T20:47:18+00:00</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2022-07-06T20:47:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.josher.dev/rneovim.git/commit/?id=664efa497e4e3d79d2e4ab486acbf1471b2389b0'/>
<id>664efa497e4e3d79d2e4ab486acbf1471b2389b0</id>
<content type='text'>
Problem:    Get ml_get error when deleting a line in 'completefunc'. (Yegappan
            Lakshmanan)
Solution:   Lock the text while evaluating 'completefunc'.
https://github.com/vim/vim/commit/ff06f283e3e4b3ec43012dd3b83f8454c98f6639

Fix a mistake in the porting of patch 8.1.0098.
Cherry-pick Test_run_excmd_with_text_locked() from patch 8.2.0270.
Cherry-pick test_gf.vim changes from patch 8.2.0369.
Cherry-pick message change from later patches.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:    Get ml_get error when deleting a line in 'completefunc'. (Yegappan
            Lakshmanan)
Solution:   Lock the text while evaluating 'completefunc'.
https://github.com/vim/vim/commit/ff06f283e3e4b3ec43012dd3b83f8454c98f6639

Fix a mistake in the porting of patch 8.1.0098.
Cherry-pick Test_run_excmd_with_text_locked() from patch 8.2.0270.
Cherry-pick test_gf.vim changes from patch 8.2.0369.
Cherry-pick message change from later patches.</pre>
</div>
</content>
</entry>
</feed>
