From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 3241F6BD36; Fri, 26 Mar 2021 10:54:43 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 3241F6BD36 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1616745283; bh=xisKfhoZha2tkWxEaj9uwHibanrjX6zOTYB5cgsLyxE=; h=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=IFPwSVOFTRjhRywHyJz5dLHOWA5VSLjCe6GH7eWhwXGTDAch3k4BxfjjTlnXaMHjc kKNU1ByaHOYEOMRv64e5RgDeaFvaKG/r94+gr0jzzVrlVxWgPK6ys3PRysGaYHlemX tCSPYiIYifSeo7EqjWMeQ1A55z/GUkjEfyfcy+c0= Received: from smtp63.i.mail.ru (smtp63.i.mail.ru [217.69.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 46CF268F4B for ; Fri, 26 Mar 2021 10:44:41 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 46CF268F4B Received: by smtp63.i.mail.ru with esmtpa (envelope-from ) id 1lPh96-00042u-AU; Fri, 26 Mar 2021 10:44:40 +0300 To: Sergey Ostanevich , Igor Munkin Date: Fri, 26 Mar 2021 10:43:04 +0300 Message-Id: <9bf043d0714a15e51ca6e6f0778722da04e4c934.1616743343.git.skaplun@tarantool.org> X-Mailer: git-send-email 2.31.0 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD9064ADF4728AA0EE92C031F1727A757A9F762E9876BADF49A182A05F5380850407AB59621EC4B23EA7A3510E057F7452F7B8BD98966CBB91B5955B6C937939A4F X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE78BAADB77C21FF6F2EA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F79006370FDF1CE57EA9D07C8638F802B75D45FF914D58D5BE9E6BC131B5C99E7648C95C5DD32608FC869F5D65A9A89480812DEA0CBE027F9531F6EFA471835C12D1D9774AD6D5ED66289B5278DA827A17800CE7D9442B0B5983000E8941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B669875440691429F6CC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB86D1867E19FE14079C09775C1D3CA48CFC5EA940A35A165FF2DBA43225CD8A89F890A246B268E114EA91E23F1B6B78B78B5C8C57E37DE458BEDA766A37F9254B7 X-B7AD71C0: AC4F5C86D027EB782CDD5689AFBDA7A2AD77751E876CB595E8F7B195E1C97831181D79FD8B28A83511447ED96C72CD2D X-C1DE0DAB: C20DE7B7AB408E4181F030C43753B8186998911F362727C414F749A5E30D975C5DD32608FC869F5D65A9A89480812DEA0CBE027F9531F6EF9C2B6934AE262D3EE7EAB7254005DCED7532B743992DF240BDC6A1CF3F042BAD6DF99611D93F60EFF532FBFD8162E58C699F904B3F4130E343918A1A30D5E7FCCB5012B2E24CD356 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D34E54F8089C01448AACE44F014FB3314FC87DDF98431CEB51B5EAA2C89A524636906FBABC8D2F65DB41D7E09C32AA3244C24EC0A0E19D6A2255F87653673702361408A6A02710B7304927AC6DF5659F194 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojapPp7P/VpAgopNfu+nnywg== X-Mailru-Sender: 3B9A0136629DC91206CBC582EFEF4CB43AD7AAF2D40FDCC0C37CE200D0FCECB7E0CC5C60C4892C08F2400F607609286E924004A7DEC283833C7120B22964430C52B393F8C72A41A89437F6177E88F7363CDA0F3B3F5B9367 X-Mras: Ok Subject: [Tarantool-patches] [PATCH v2 luajit 21/30] test: disable test for getfenv in closure tailcall X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Sergey Kaplun via Tarantool-patches Reply-To: Sergey Kaplun Cc: tarantool-patches@dev.tarantool.org Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" LuaJIT doesn't take into account tail calls for call-level counting, so getfenv() behaviour is different from Lua 5.1 in tail calls. This patch disables test for the return result of tail call getfenv(). Default value (equals 1) of getfenv() function's argument (function level) is invalid for this tail call -- LuaJIT can't provide necessary debug information for the frame. Relates to tarantool/tarantool#5713 Part of tarantool/tarantool#5845 Part of tarantool/tarantool#4473 --- test/PUC-Lua-5.1-tests/closure.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/PUC-Lua-5.1-tests/closure.lua b/test/PUC-Lua-5.1-tests/closure.lua index 7f56ab8..7af842f 100644 --- a/test/PUC-Lua-5.1-tests/closure.lua +++ b/test/PUC-Lua-5.1-tests/closure.lua @@ -174,7 +174,14 @@ f = coroutine.wrap(foo) local a = {} assert(f(a) == _G) local a,b = pcall(f) -assert(a and b == _G) +-- LuaJIT doesn't take into account tail calls for call-level +-- counting, so getfenv() behaviour is different in tail calls. +-- For example, this `pcall()` returns false, because getfenv() +-- default level is 1 which is invalid for this case when +-- is called from tail call (lj_debug_frame() returns NULL). +-- See also https://github.com/tarantool/tarantool/issues/5713. +-- FIXME: Test is disabled for LuaJIT for now. +-- assert(a and b == _G) -- tests for multiple yield/resume arguments -- 2.31.0