fix(runtime): don't use regexes inside lua require'mod'

Fixes #15147 and fixes #15497. Also sketch "subdir" caching. Currently
this only caches whether an rtp entry has a "lua/" subdir but we could
consider cache other subdirs potentially or even "lua/mybigplugin/"
possibly.

Note: the async_leftpad test doesn't actually fail on master, at least
not deterministically (even when disabling the fast_breakcheck
throttling). It's still useful as a regression test for further changes
and included as such.
This commit is contained in:
Björn Linse
2021-09-28 13:51:26 +02:00
parent f19dc06081
commit ea2023f689
15 changed files with 179 additions and 42 deletions

View File

@@ -328,6 +328,15 @@ describe('startup', function()
eq({9003, '\thowdy'}, exec_lua [[ return { _G.y, _G.z } ]])
end)
it("handles require from &packpath in an async handler", function()
-- NO! you cannot just speed things up by calling async functions during startup!
-- It doesn't make anything actually faster! NOOOO!
pack_clear [[ lua require'async_leftpad'('brrrr', 'async_res') ]]
-- haha, async leftpad go brrrrr
eq('\tbrrrr', exec_lua [[ return _G.async_res ]])
end)
it("handles :packadd during startup", function()
-- control group: opt/bonus is not availabe by default
pack_clear [[