Compare commits
1 Commits
Author | SHA256 | Date | |
---|---|---|---|
e1955802f0 |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,4 +1 @@
|
|||||||
.osc
|
.osc
|
||||||
_scmsync.obsinfo
|
|
||||||
_buildconfig-*
|
|
||||||
_buildinfo-*.xml
|
|
||||||
|
BIN
lua-5.4.7-tests.tar.gz
(Stored with Git LFS)
Normal file
BIN
lua-5.4.7-tests.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
lua-5.4.7.tar.gz
(Stored with Git LFS)
Normal file
BIN
lua-5.4.7.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
lua-5.4.8-tests.tar.gz
(Stored with Git LFS)
BIN
lua-5.4.8-tests.tar.gz
(Stored with Git LFS)
Binary file not shown.
BIN
lua-5.4.8.tar.gz
(Stored with Git LFS)
BIN
lua-5.4.8.tar.gz
(Stored with Git LFS)
Binary file not shown.
@@ -1,10 +1,3 @@
|
|||||||
-------------------------------------------------------------------
|
|
||||||
Sat Jul 12 18:38:52 UTC 2025 - Callum Farmer <gmbr3@opensuse.org>
|
|
||||||
|
|
||||||
- Update to version 5.4.8:
|
|
||||||
* Fixed 8 bugs from 5.4.7
|
|
||||||
- Add upstream1.patch: Numbered upstream patch
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Apr 23 07:55:24 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
|
Wed Apr 23 07:55:24 UTC 2025 - Matej Cepl <mcepl@cepl.eu>
|
||||||
|
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
%define major_version 5.4
|
%define major_version 5.4
|
||||||
%define libname liblua5_4-5
|
%define libname liblua5_4-5
|
||||||
Name: lua54%{name_ext}
|
Name: lua54%{name_ext}
|
||||||
Version: 5.4.8
|
Version: 5.4.7
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Small Embeddable Language with Procedural Syntax
|
Summary: Small Embeddable Language with Procedural Syntax
|
||||||
License: MIT
|
License: MIT
|
||||||
@@ -45,7 +45,6 @@ Patch3: main_test.patch
|
|||||||
Patch6: shared_link.patch
|
Patch6: shared_link.patch
|
||||||
# PATCH-FIX-UPSTREAM inspect errno only after failure
|
# PATCH-FIX-UPSTREAM inspect errno only after failure
|
||||||
Patch8: execresult.patch
|
Patch8: execresult.patch
|
||||||
Patch100: upstream1.patch
|
|
||||||
Requires(post): update-alternatives
|
Requires(post): update-alternatives
|
||||||
Requires(postun):update-alternatives
|
Requires(postun):update-alternatives
|
||||||
Provides: lua = %{version}
|
Provides: lua = %{version}
|
||||||
|
@@ -1,53 +0,0 @@
|
|||||||
From 1b0f943da7dfb25987456a77259edbeea0b94edc Mon Sep 17 00:00:00 2001
|
|
||||||
From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
|
|
||||||
Date: Mon, 16 Jun 2025 16:33:02 -0300
|
|
||||||
Subject: [PATCH] Bug: new metatable in weak table can fool the GC
|
|
||||||
|
|
||||||
All-weak tables are not being revisited after being visited during
|
|
||||||
propagation; if it gets a new metatable after that, the new metatable
|
|
||||||
may not be marked.
|
|
||||||
---
|
|
||||||
lgc.c | 8 ++++++--
|
|
||||||
testes/gc.lua | 10 ++++++++++
|
|
||||||
2 files changed, 16 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lgc.c b/lgc.c
|
|
||||||
index 5817f9eec3..c01660abc5 100644
|
|
||||||
--- a/src/lgc.c
|
|
||||||
+++ b/src/lgc.c
|
|
||||||
@@ -553,8 +553,12 @@ static lu_mem traversetable (global_State *g, Table *h) {
|
|
||||||
traverseweakvalue(g, h);
|
|
||||||
else if (!weakvalue) /* strong values? */
|
|
||||||
traverseephemeron(g, h, 0);
|
|
||||||
- else /* all weak */
|
|
||||||
- linkgclist(h, g->allweak); /* nothing to traverse now */
|
|
||||||
+ else { /* all weak */
|
|
||||||
+ if (g->gcstate == GCSpropagate)
|
|
||||||
+ linkgclist(h, g->grayagain); /* must visit again its metatable */
|
|
||||||
+ else
|
|
||||||
+ linkgclist(h, g->allweak); /* must clear collected entries */
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
else /* not weak */
|
|
||||||
traversestrongtable(g, h);
|
|
||||||
diff --git a/testes/gc.lua b/testes/gc.lua
|
|
||||||
index 03093e34ff..f017f33056 100644
|
|
||||||
--- a/testes/gc.lua
|
|
||||||
+++ b/testes/gc.lua
|
|
||||||
@@ -301,6 +301,16 @@ collectgarbage()
|
|
||||||
assert(next(a) == string.rep('$', 11))
|
|
||||||
|
|
||||||
|
|
||||||
+if T then -- bug since 5.3: all-weak tables are not being revisited
|
|
||||||
+ T.gcstate("propagate")
|
|
||||||
+ local t = setmetatable({}, {__mode = "kv"})
|
|
||||||
+ T.gcstate("atomic") -- 't' was visited
|
|
||||||
+ setmetatable(t, {__mode = "kv"})
|
|
||||||
+ T.gcstate("pause") -- its new metatable is not being visited
|
|
||||||
+ assert(getmetatable(t).__mode == "kv")
|
|
||||||
+end
|
|
||||||
+
|
|
||||||
+
|
|
||||||
-- 'bug' in 5.1
|
|
||||||
a = {}
|
|
||||||
local t = {x = 10}
|
|
Reference in New Issue
Block a user