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 2B7776ECCC; Thu, 4 Jun 2026 15:06:52 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 2B7776ECCC DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1780574812; bh=cXhER4h5Nl2o8aIipU9l1PoGDfs1/FimlxeBef2c/V0=; h=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=PXC8mjQcptdayXIDwpu9chiSVlAEKxJ9SuevnmBaYJihQYW+XcHeJpN+dFgh47QXD t0RHew5Xh+n351QFm6fnhvw58MSjTeD3IDJ/EE4OwC5DZF1VVZMSxRzxEDqk+TVZp3 4gfqIN4UbMBQxXQln3vDT7kGBK2d0u+1mkUlwH8A= Received: from send240.i.mail.ru (send240.i.mail.ru [95.163.59.79]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id B023C6ECCC for ; Thu, 4 Jun 2026 15:06:50 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org B023C6ECCC Received: by exim-smtp-5b85998476-gmss4 with esmtpa (envelope-from ) id 1wV6qX-000000004Hw-3NYv; Thu, 04 Jun 2026 15:06:50 +0300 Date: Thu, 4 Jun 2026 15:06:14 +0300 To: Sergey Bronnikov Message-ID: References: <20260530160409.4043089-1-skaplun@tarantool.org> <20260530160409.4043089-5-skaplun@tarantool.org> <8e8cab09-9dfd-4cbd-bd55-a74cc491955b@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <8e8cab09-9dfd-4cbd-bd55-a74cc491955b@tarantool.org> X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: B8F34718100C35BD X-77F55803: 4F1203BC0FB41BD9FAD06046D747065BBF816D40BB268C39BEF3EB7B34238F51182A05F5380850401B58EA562BC4168C3DE06ABAFEAF670538AE268316478ECB096C923480C79DC6EA3FA2387DC1E520 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE78C6616F30072131EEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637AC83A81C8FD4AD23D82A6BABE6F325AC2E85FA5F3EDFCBAA7353EFBB5533756660A56BB7F6F20B603883EA38E9FEF786ADBA68B10FFB6F39C5DBC1F534E67FD4389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C07E7E81EEA8A9722B8941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B652D31B9D28593E51CC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB86D1867E19FE14079C09775C1D3CA48CF3D321E7403792E342EB15956EA79C166A417C69337E82CC275ECD9A6C639B01B78DA827A17800CE778B471BB9634AD8A731C566533BA786AA5CC5B56E945C8DA X-C1DE0DAB: 0D63561A33F958A5D05C0D706DC307645002B1117B3ED69644D304C5E34C6A49CA7E60A991436CA2823CB91A9FED034534781492E4B8EEAD887A4342A344B6EDBDAD6C7F3747799A X-C8649E89: 1C3962B70DF3F0AD73CAD6646DEDE191716CD42B3DD1D34CAB70F9BE574AE9C625B6776AC983F447FC0B9F89525902EE6F57B2FD27647F25E66C117BDB76D659266768F7F1958F1F7283893EEC88706CD19CBFEEF5997AF5A5A1F8A66662C8201E2579C67070B506B8341EE9D5BE9A0AB4C38E4F47E682383E7093FA6A239EDEBCD6C0DD9A1919486536EB022892E5344C41F94D744909CECFA6C6B0C050A61A8CAF69B82BA93681CD72808BE417F3B9E0E7457915DAA85F X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+ObcCpyrx6l7KImUglyhkEat/+ysWwi0gdhEs0JGjl6ggRWTy1haxBpVdbIX1nthFXMZebaIdHP2ghjoIc/363UZI6Kf1ptIMVRI2994ruhLUhSYSXb2IfHU= X-DA7885C5: E563CA643A4CFD01F255D290C0D534F9C6301C06271F6B268CADD48569E857265F20F3E9CA2310AD5B1A4C17EAA7BC4BEF2421ABFA55128DAF83EF9164C44C7E X-Mailru-Sender: 689FA8AB762F7393520AF17B8A65FDE2333DC1F89CDE74AAD1E510738AB9283E8C54DECA68227627E49D44BB4BD9522A059A1ED8796F048DB274557F927329BE89D5A3BC2B10C37545BD1C3CC395C826B4A721A3011E896F X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH luajit 4/5] FFI: Various ABI and calling convention fixes. 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" Hi, Sergey, Thanks for the review! Fixed your comments and force-pushed the branch. On 01.06.26, Sergey Bronnikov wrote: > Hi, Sergey, > > thanks for the patch! See my comments below. > > It looks like you tried to test the patch as thoroughly as possible. > > Could you tell me how you compiled your test list? Some ideas is taken from [1][2][3]. > > Is there a matrix of possible types and structures you used? I just use various tests related to the changes in the patch. Several packed structures. Structures of different sizes. Several aligned structures. All of it to be passed through the stack and/or registers. HFA aggregates. Structure with 0-bitfields. > How do you > assess the completeness of testing? The complete coverage of all C calling conventions is not the goal of this patch. > > Sergey > > On 5/30/26 19:04, Sergey Kaplun wrote: > > diff --git a/test/tarantool-tests/ffi-ccall/CMakeLists.txt b/test/tarantool-tests/ffi-ccall/CMakeLists.txt > > index 1d004591..dfd58bd2 100644 > > --- a/test/tarantool-tests/ffi-ccall/CMakeLists.txt > > +++ b/test/tarantool-tests/ffi-ccall/CMakeLists.txt > > @@ -1,8 +1,12 @@ > > list(APPEND tests > > + ffi-call-empty-struct.test.lua > > + ffi-vector-arguments.test.lua > > ffi-ccall-arm64-fp-convention.test.lua > > lj-205-arm64-osx-ffi-enum-arg.test.lua > > lj-205-arm64-osx-ffi-small-arg.test.lua > > lj-1357-arm64-struct-array-pass-by-val.test.lua > > + lj-1455-arm64-ffi-ccall-hfa.test.lua > > + lj-1455-ffi-conventions.test.lua > > ) > > it is sorted not alphabetically: Fixed. > > --- a/test/tarantool-tests/ffi-ccall/CMakeLists.txt > +++ b/test/tarantool-tests/ffi-ccall/CMakeLists.txt > @@ -1,12 +1,12 @@ >  list(APPEND tests >    ffi-call-empty-struct.test.lua > -  ffi-vector-arguments.test.lua >    ffi-ccall-arm64-fp-convention.test.lua > -  lj-205-arm64-osx-ffi-enum-arg.test.lua > -  lj-205-arm64-osx-ffi-small-arg.test.lua > +  ffi-vector-arguments.test.lua >    lj-1357-arm64-struct-array-pass-by-val.test.lua >    lj-1455-arm64-ffi-ccall-hfa.test.lua >    lj-1455-ffi-conventions.test.lua > +  lj-205-arm64-osx-ffi-enum-arg.test.lua > +  lj-205-arm64-osx-ffi-small-arg.test.lua In order of common sense, I leave the numeric sorting order for ticket numbers: =================================================================== diff --git a/test/tarantool-tests/ffi-ccall/CMakeLists.txt b/test/tarantool-tests/ffi-ccall/CMakeLists.txt index dfd58bd2..6bc839c3 100644 --- a/test/tarantool-tests/ffi-ccall/CMakeLists.txt +++ b/test/tarantool-tests/ffi-ccall/CMakeLists.txt @@ -1,7 +1,7 @@ list(APPEND tests ffi-call-empty-struct.test.lua - ffi-vector-arguments.test.lua ffi-ccall-arm64-fp-convention.test.lua + ffi-vector-arguments.test.lua lj-205-arm64-osx-ffi-enum-arg.test.lua lj-205-arm64-osx-ffi-small-arg.test.lua lj-1357-arm64-struct-array-pass-by-val.test.lua =================================================================== >  ) > > > > diff --git a/test/tarantool-tests/ffi-vector-arguments.test.lua b/test/tarantool-tests/ffi-vector-arguments.test.lua > > new file mode 100644 > > index 00000000..330ec991 > > --- /dev/null > > +++ b/test/tarantool-tests/ffi-vector-arguments.test.lua > > @@ -0,0 +1,62 @@ > > +local ffi = require('ffi') > > +local tap = require('tap') > > + > > +-- The test file to check FFI vector passing correctness. > > +local test = tap.test('ffi-vector-arguments'):skipcond({ > > + ['NYI for non x64 arches'] = jit.arch ~= 'x64', > s/non x64/non-x64/ Fixed. =================================================================== diff --git a/test/tarantool-tests/ffi-vector-arguments.test.lua b/test/tarantool-tests/ffi-vector-arguments.test.lua index 555e7fab..42083487 100644 --- a/test/tarantool-tests/ffi-vector-arguments.test.lua +++ b/test/tarantool-tests/ffi-vector-arguments.test.lua @@ -3,7 +3,7 @@ local tap = require('tap') -- The test file to check FFI vector passing correctness. local test = tap.test('ffi-vector-arguments'):skipcond({ - ['NYI for non x64 arches'] = jit.arch ~= 'x64', + ['NYI for non-x64 arches'] = jit.arch ~= 'x64', }) local SIZING =================================================================== > > +}) > > + > > +local SIZING > > +-- Only those are implemented. > > +if jit.arch == 'x64' then > > + SIZING = {2, 4,} > s/,}/}/ Fixed. =================================================================== diff --git a/test/tarantool-tests/ffi-vector-arguments.test.lua b/test/tarantool-tests/ffi-vector-arguments.test.lua index 330ec991..555e7fab 100644 --- a/test/tarantool-tests/ffi-vector-arguments.test.lua +++ b/test/tarantool-tests/ffi-vector-arguments.test.lua @@ -9,7 +9,7 @@ local test = tap.test('ffi-vector-arguments'):skipcond({ local SIZING -- Only those are implemented. if jit.arch == 'x64' then - SIZING = {2, 4,} + SIZING = {2, 4} else SIZING = {} end =================================================================== > > +else > > + SIZING = {} [1]: https://gnu.googlesource.com/gcc/+/8fcc61f8964aa9aa2e6fc08cb961f9dc2a5add77/gcc/testsuite/gcc.target/aarch64/aapcs64 [2]: https://github.com/llvm/llvm-project/tree/main/clang/test/CodeGen/AArch64 [3]: https://github.com/llvm/llvm-project/tree/main/clang/test -- Best regards, Sergey Kaplun