From ea2023f689ad8f368faad6e52c85fbc9762a7296 Mon Sep 17 00:00:00 2001 From: Björn Linse Date: Tue, 28 Sep 2021 13:51:26 +0200 Subject: 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. --- test/functional/core/startup_spec.lua | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'test/functional/core') diff --git a/test/functional/core/startup_spec.lua b/test/functional/core/startup_spec.lua index bf2559f8d7..cc6e2c8067 100644 --- a/test/functional/core/startup_spec.lua +++ b/test/functional/core/startup_spec.lua @@ -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 [[ -- cgit