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