On Fri, 31 Jul 2020, Jack Hill wrote:

Hi Guix,

I'm wondering why we use Lua 5.1 instead of LuaJIT for neovim? It seems that upstream prefers LuaJIT given the non-default configure flag we use[0] and their FAQ[1].

I don't have an opinion either way. I'm learning about neovim today, and am curious how we arrived at our configuration.

[0] 
https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/vim.scm?id=96a655a77bb087397a9436391e472c36ff0a2ec2#n647
[1] https://github.com/neovim/neovim/wiki/FAQ#why-embed-lua-instead-of-x

Best,
Jack

I've returned to the above question. With the attached patch, neovim builds on x86_64 and performs basic editing functions. I did not test it with any extra packages or plugins.

In addition to what I said before, I'm also interested in LuaJIT because it supports the 5.1 language and still seems to be developed upstream. Lua is no longer developing the 5.1 series and the newer series have an incompatible language.

A downside to using LuaJIT is that it doesn't support all the architectures that Guix supports [2]. In particular, it looks like aarch64 and ppc64el are missing.

[2] https://luajit.org/install.html

Best,
Jack

P.S. Maybe its time to work on the Lua language of Guile 😀
From eea95ade77aabd0528043a68fee4d2c45a334602 Mon Sep 17 00:00:00 2001
From: Jack Hill <jackh...@jackhill.us>
Date: Thu, 22 Apr 2021 01:17:56 -0400
Subject: [PATCH] gnu: neovim: Use luajit.

* gnu/packages/vim.scm (neovim)[inputs]: Replace lua-5.1 with luajit.
[arguments]: Remove "-DPREFER_LUA:BOOL=YES" from #:configure-flags, and adjust
"set-lua-paths" phase to use luajit.
---
 gnu/packages/vim.scm | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 231fae9298..35608a2220 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -643,7 +643,6 @@ are detected, the user is notified.")))
      `(#:modules ((srfi srfi-26)
                   (guix build cmake-build-system)
                   (guix build utils))
-       #:configure-flags '("-DPREFER_LUA:BOOL=YES")
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'set-lua-paths
@@ -658,7 +657,7 @@ are detected, the user is notified.")))
                        (let ((path (string-append prefix "/share/lua/" lua-version)))
                          (string-append path "/?.lua;" path "/?/?.lua"))))
                     (lua-inputs (map (cute assoc-ref %build-inputs <>)
-                                     '("lua"
+                                     '("luajit"
                                        "lua-luv"
                                        "lua-lpeg"
                                        "lua-bitop"
@@ -684,7 +683,7 @@ are detected, the user is notified.")))
        ("unibilium" ,unibilium)
        ("jemalloc" ,jemalloc)
        ("libiconv" ,libiconv)
-       ("lua" ,lua-5.1)
+       ("luajit" ,luajit)
        ("lua-luv" ,lua5.1-luv)
        ("lua-lpeg" ,lua5.1-lpeg)
        ("lua-bitop" ,lua5.1-bitop)
-- 
2.31.1

Reply via email to