aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2024-02-16 23:01:02 -0300
committerHisham Muhammad <hisham@gobolinux.org>2024-02-17 01:09:11 -0300
commit614c1e410e19ca3bf5c014e359d35b74de2fe4f9 (patch)
tree8a45ae858493c0cf1bb54bff06391f0e5159343d
parent7a9bfd8dae3a1611366fc42b06f7ec34bc5347d6 (diff)
downloadluarocks-614c1e410e19ca3bf5c014e359d35b74de2fe4f9.tar.gz
luarocks-614c1e410e19ca3bf5c014e359d35b74de2fe4f9.tar.bz2
luarocks-614c1e410e19ca3bf5c014e359d35b74de2fe4f9.zip
refactor: reduce some aliasing
Reduce some variable aliasing, just in case this is what is triggering possible LuaJIT bugs on the MIPS-based LoongArch architecture. See #1553.
-rw-r--r--src/luarocks/deps.lua14
-rw-r--r--src/luarocks/manif/writer.lua10
2 files changed, 13 insertions, 11 deletions
diff --git a/src/luarocks/deps.lua b/src/luarocks/deps.lua
index 6f8990d7..0b9ca8b5 100644
--- a/src/luarocks/deps.lua
+++ b/src/luarocks/deps.lua
@@ -609,12 +609,12 @@ end
609-- to build a transitive closure of all dependent packages. 609-- to build a transitive closure of all dependent packages.
610-- Additionally ensures that `dependencies` table of the manifest is up-to-date. 610-- Additionally ensures that `dependencies` table of the manifest is up-to-date.
611-- @param results table: The results table being built, maps package names to versions. 611-- @param results table: The results table being built, maps package names to versions.
612-- @param manifest table: The manifest table containing dependencies. 612-- @param mdeps table: The manifest dependencies table.
613-- @param name string: Package name. 613-- @param name string: Package name.
614-- @param version string: Package version. 614-- @param version string: Package version.
615function deps.scan_deps(results, manifest, name, version, deps_mode) 615function deps.scan_deps(results, mdeps, name, version, deps_mode)
616 assert(type(results) == "table") 616 assert(type(results) == "table")
617 assert(type(manifest) == "table") 617 assert(type(mdeps) == "table")
618 assert(type(name) == "string" and not name:match("/")) 618 assert(type(name) == "string" and not name:match("/"))
619 assert(type(version) == "string") 619 assert(type(version) == "string")
620 620
@@ -623,10 +623,8 @@ function deps.scan_deps(results, manifest, name, version, deps_mode)
623 if results[name] then 623 if results[name] then
624 return 624 return
625 end 625 end
626 if not manifest.dependencies then manifest.dependencies = {} end 626 if not mdeps[name] then mdeps[name] = {} end
627 local md = manifest.dependencies 627 local mdn = mdeps[name]
628 if not md[name] then md[name] = {} end
629 local mdn = md[name]
630 local dependencies = mdn[version] 628 local dependencies = mdn[version]
631 local rocks_provided 629 local rocks_provided
632 if not dependencies then 630 if not dependencies then
@@ -647,7 +645,7 @@ function deps.scan_deps(results, manifest, name, version, deps_mode)
647 local matched = match_all_deps(dependencies, get_versions) 645 local matched = match_all_deps(dependencies, get_versions)
648 results[name] = version 646 results[name] = version
649 for _, match in pairs(matched) do 647 for _, match in pairs(matched) do
650 deps.scan_deps(results, manifest, match.name, match.version, deps_mode) 648 deps.scan_deps(results, mdeps, match.name, match.version, deps_mode)
651 end 649 end
652end 650end
653 651
diff --git a/src/luarocks/manif/writer.lua b/src/luarocks/manif/writer.lua
index a435d29e..e39137c2 100644
--- a/src/luarocks/manif/writer.lua
+++ b/src/luarocks/manif/writer.lua
@@ -91,13 +91,17 @@ local function update_dependencies(manifest, deps_mode)
91 assert(type(manifest) == "table") 91 assert(type(manifest) == "table")
92 assert(type(deps_mode) == "string") 92 assert(type(deps_mode) == "string")
93 93
94 if not manifest.dependencies then manifest.dependencies = {} end
95 local mdeps = manifest.dependencies
96
94 for pkg, versions in pairs(manifest.repository) do 97 for pkg, versions in pairs(manifest.repository) do
95 for version, repositories in pairs(versions) do 98 for version, repositories in pairs(versions) do
96 for _, repo in ipairs(repositories) do 99 for _, repo in ipairs(repositories) do
97 if repo.arch == "installed" then 100 if repo.arch == "installed" then
98 repo.dependencies = {} 101 local rd = {}
99 deps.scan_deps(repo.dependencies, manifest, pkg, version, deps_mode) 102 repo.dependencies = rd
100 repo.dependencies[pkg] = nil 103 deps.scan_deps(rd, mdeps, pkg, version, deps_mode)
104 rd[pkg] = nil
101 end 105 end
102 end 106 end
103 end 107 end