wbthomason / packer.nvim

A use-package inspired plugin manager for Neovim. Uses native packages, supports Luarocks dependencies, written in Lua, allows for expressive config
MIT License
7.82k stars 266 forks source link

:PackerSync broken on fresh install #967

Closed ghost closed 2 years ago

ghost commented 2 years ago

Steps to reproduce

  1. Install packer using the following file
    
    local path = vim.fn.stdpath('data')..'/site/pack/packer/start/packer.nvim'
    if vim.fn.empty(vim.fn.glob(path)) > 0 then
    packer_bootstrap = vim.fn.system({
      'git',
      'clone',
      '--depth',
      '1',
      'https://github.com/wbthomason/packer.nvim',
      path
    })
    end

vim.cmd([[ augroup packer_user_config autocmd! autocmd BufWritePost plugins.lua source | PackerCompile augroup end ]])

local success, packer = pcall(require, "packer") if not success then return end

packer.startup(function(use) use 'wbthomason/packer.nvim'

if packer_bootstrap then require("packer").sync() end end)

2. run :PackerSync

### Actual behaviour

Error executing vim.schedule lua callback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:309: attempt to call method 'valid_display' (a nil value) stack traceback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:309: in function '' vim/_editor.lua: in function <vim/_editor.lua:0> Error executing vim.schedule lua callback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:226: attempt to call method 'valid_display' (a nil value) stack traceback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:226: in function '' vim/_editor.lua: in function <vim/_editor.lua:0> Error executing vim.schedule lua callback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:282: attempt to call method 'valid_display' (a nil value) stack traceback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:282: in function '' vim/_editor.lua: in function <vim/_editor.lua:0> Error executing vim.schedule lua callback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:282: attempt to call method 'valid_display' (a nil value) stack traceback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:282: in function '' vim/_editor.lua: in function <vim/_editor.lua:0> Error executing vim.schedule lua callback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:282: attempt to call method 'valid_display' (a nil value) stack traceback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:282: in function '' vim/_editor.lua: in function <vim/_editor.lua:0> Error executing vim.schedule lua callback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:282: attempt to call method 'valid_display' (a nil value) stack traceback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:282: in function '' vim/_editor.lua: in function <vim/_editor.lua:0> Error executing vim.schedule lua callback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:282: attempt to call method 'valid_display' (a nil value) stack traceback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:282: in function '' vim/_editor.lua: in function <vim/_editor.lua:0> Error executing vim.schedule lua callback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:258: attempt to call method 'valid_display' (a nil value) stack traceback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:258: in function '' vim/_editor.lua: in function <vim/_editor.lua:0> Error executing vim.schedule lua callback: ...im/site/pack/packer/start/packer.nvim/lua/packer/log.lua:100: attempt to concatenate field 'currentline' (a nil value) stack traceback: ...im/site/pack/packer/start/packer.nvim/lua/packer/log.lua:100: in function '' vim/_editor.lua: in function <vim/_editor.lua:0> Error executing vim.schedule lua callback: ...ack/packer/start/packer.nvim/lua/packer/plugin_utils.lua:76: bad argument #1 to 'ipairs' (table expected, got nil) stack traceback: [C]: in function 'ipairs' ...ack/packer/start/packer.nvim/lua/packer/plugin_utils.lua:76: in function '' vim/_editor.lua: in function <vim/_editor.lua:0> Error executing vim.schedule lua callback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:390: attempt to call method 'valid_display' (a nil value) stack traceback: ...ite/pack/packer/start/packer.nvim/lua/packer/display.lua:390: in function '' vim/_editor.lua: in function <vim/_editor.lua:0>


### Expected behaviour
It executes without any errors

### packer files

<details>
<summary>Plugin specification file(s)</summary>

Post or link your plugin specification files here, if you aren't able to provide a minimal
reproducer

</details>

<details>
<summary>packer log file</summary>

[ERROR Mon 11 Jul 2022 09:27:50 PM CEST 37865645053497] .../site/pack/packer/start/packer.nvim/lua/packer/async.lua:20: Error in coroutine: ...e/nvim/site/pack/packer/start/packer.nvim/lua/packer.lua:725: Vim(source):E5112: Error while creating lua chunk: /home/abdul/.config/nvim/plugin/packer_compiled.lua:15: unexpected symbol near 'if' [ERROR Mon 11 Jul 2022 09:34:20 PM CEST 38255287476351] .../site/pack/packer/start/packer.nvim/lua/packer/async.lua:20: Error in coroutine: ...e/nvim/site/pack/packer/start/packer.nvim/lua/packer.lua:725: Vim(source):E5112: Error while creating lua chunk: /home/abdul/.config/nvim/plugin/packer_compiled.lua:15: unexpected symbol near 'if'

</details>

<details>
<summary>packer compiled file</summary>

```lua
-- Automatically generated packer.nvim plugin loader code

if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
  vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
  return
end

vim.api.nvim_command('packadd packer.nvim')

local no_errors, error_msg = pcall(function()

  local time
  local profile_info
  local should_profile = 
  if should_profile then
    local hrtime = vim.loop.hrtime
    profile_info = {}
    time = function(chunk, start)
      if start then
        profile_info[chunk] = hrtime()
      else
        profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
      end
    end
  else
    time = function(chunk, start) end
  end

local function save_profiles(threshold)
  local sorted_times = {}
  for chunk_name, time_taken in pairs(profile_info) do
    sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
  end
  table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
  local results = {}
  for i, elem in ipairs(sorted_times) do
    if not threshold or threshold and elem[2] > threshold then
      results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
    end
  end

  _G._packer = _G._packer or {}
  _G._packer.profile_output = results
end

time([[Luarocks path setup]], true)
local package_path_str = 
local install_cpath_pattern = "/home/abdul/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so"
if not string.find(package.path, package_path_str, 1, true) then
  package.path = package.path .. ';' .. package_path_str
end

if not string.find(package.cpath, install_cpath_pattern, 1, true) then
  package.cpath = package.cpath .. ';' .. install_cpath_pattern
end

time([[Luarocks path setup]], false)
time([[try_loadstring definition]], true)
local function try_loadstring(s, component, name)
  local success, result = pcall(loadstring(s), name, _G.packer_plugins[name])
  if not success then
    vim.schedule(function()
      vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
    end)
  end
  return result
end

time([[try_loadstring definition]], false)
time([[Defining packer_plugins]], true)
_G.packer_plugins =                 

time([[Defining packer_plugins]], false)
if should_profile then save_profiles() end

end)

if not no_errors then
  error_msg = error_msg:gsub('"', '\\"')
  vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
end

ghost commented 2 years ago

Disabling luajit with lua5.1 by specifying

LUA_SINGLE_TARGET="lua5-1"

in Gentoo configs seems to resolve the issue but disables Luarocks functionality

ghost commented 2 years ago

Fixed by upgrading luajit to 2.1.0_beta3_p20220613 from 2.1.0_beta3_p20220127-r2