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 AA67516C5263; Wed, 14 Jan 2026 11:50:56 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org AA67516C5263 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1768380656; bh=YBT+JkMOE5jISDQwwUq1FLbsTkQXDm8BTb1X365tqWM=; h=Date:To:Cc:References:In-Reply-To:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=vUgfk1tD8HgoZJInAG+kqkpkTL2o9caULYYxCMuWezw62fgWIWGiJ9zPjsSPc0s46 PXF4e10++47Q/2IbgNEkwmTkmqvpxpAzlhc/13yNpptU3kp6gKcdyuApmlUNbYsw2g zfnDAUYdbwDwD9l7r1i/BJnLaR49jBhRkUkwrt24= Received: from send242.i.mail.ru (send242.i.mail.ru [95.163.59.81]) (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 2028516C5263 for ; Wed, 14 Jan 2026 11:50:55 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 2028516C5263 Received: by exim-smtp-7b4fb89df9-dq9tr with esmtpa (envelope-from ) id 1vfwab-000000009Da-3Wxg; Wed, 14 Jan 2026 11:50:54 +0300 Date: Wed, 14 Jan 2026 11:50:35 +0300 To: Sergey Bronnikov Cc: tarantool-patches@dev.tarantool.org Message-ID: References: <997b5837-5e1b-4fd1-a8e8-bc25d6a7a8da@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <997b5837-5e1b-4fd1-a8e8-bc25d6a7a8da@tarantool.org> X-Mailru-Src: smtp X-4EC0790: 10 X-7564579A: 646B95376F6C166E X-77F55803: 4F1203BC0FB41BD979975AF0D777FEBD9A7AA89612843F49E05A58644225EC05182A05F5380850403F02FC196AD6580A3DE06ABAFEAF6705946A72403601133331D18EC1D15E35FE0BFFC594198189FC X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE7C4A7E4C0BFE8628DEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637AC83A81C8FD4AD23D82A6BABE6F325AC2E85FA5F3EDFCBAA7353EFBB55337566DDAE7ACB9D63E4C406EA55E9EFDF51AB4BF75B7CF3135C6F9079561588A71AEC389733CBF5DBD5E913377AFFFEAFD269176DF2183F8FC7C07E7E81EEA8A9722B8941B15DA834481FCF19DD082D7633A0EF3E4896CB9E6436389733CBF5DBD5E9D5E8D9A59859A8B64854413538E1713FCC7F00164DA146DA6F5DAA56C3B73B237318B6A418E8EAB8D32BA5DBAC0009BE9E8FC8737B5C2249378990534548B4FE76E601842F6C81A12EF20D2F80756B5FB606B96278B59C4276E601842F6C81A127C277FBC8AE2E8BC45053385E972D003AA81AA40904B5D99C9F4D5AE37F343AD1F44FA8B9022EA23BBE47FD9DD3FB595F5C1EE8F4F765FC72CEEB2601E22B093A03B725D353964B0B7D0EA88DDEDAC722CA9DD8327EE4930A3850AC1BE2E735444A83B712AC0148C4224003CC83647689D4C264860C145E X-C1DE0DAB: 0D63561A33F958A5C46703530C9757CF5002B1117B3ED69647BCEB63DA3A6756466072E6821086B3823CB91A9FED034534781492E4B8EEAD8D8BB953E4894305BDAD6C7F3747799A X-C8649E89: 1C3962B70DF3F0AD73CAD6646DEDE191716CD42B3DD1D34CAB70F9BE574AE9C625B6776AC983F447FC0B9F89525902EE6F57B2FD27647F25E66C117BDB76D6594A84904CAEF79309BC5362D866505CDEB43400A0CA09D27DD2996BEBB0D022C1592524FF8D4A3755B8341EE9D5BE9A0A4ED8E18B2C6E5413D15C5E62079BA856D787D65377C914C68CD93680B12512CF4C41F94D744909CECFA6C6B0C050A61A8CAF69B82BA93681CD72808BE417F3B9E0E7457915DAA85F X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu53w8ahmwBjZKM/YPHZyZHvz5uv+WouB9+ObcCpyrx6l7KImUglyhkEat/+ysWwi0gdhEs0JGjl6ggRWTy1haxBpVdbIX1nthFXMZebaIdHP2ghjoIc/363UZI6Kf1ptIMVVt0N+pdRHOZ16Pzei7fjoo= X-Mailru-Sender: 520A125C2F17F0B1A9638AD358559B5908489E2E6650964E3DE06ABAFEAF6705946A724036011333B7CBEF92542CD7C88B0A2698F12F5C9EC77752E0C033A69E86920BD37369036789A8C6A0E60D2BB63A5DB60FBEB33A8A0DA7A0AF5A3A8387 X-Mras: Ok Subject: Re: [Tarantool-patches] [PATCH v2 luajit 37/41] perf: add CMake infrastructure 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 Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Hi, Sergey! Fixed your comments, see the iterative patches below. On 13.01.26, Sergey Bronnikov wrote: > Hi, Sergey! > > thanks for the patch! LGTM in general, see my comments below. > > Sergey > > On 12/26/25 12:18, Sergey Kaplun wrote: > > +macro(AddBenchTarget perf_suite) > > + file(MAKE_DIRECTORY "${PERF_OUTPUT_DIR}/${perf_suite}/") > > + message(STATUS "Add perf suite ${perf_suite}") > > + add_custom_target(${perf_suite}) > > + add_custom_target(${perf_suite}-console > > + COMMAND ${CMAKE_CTEST_COMMAND} > > + -L ${perf_suite} > use long option "--label-regex" instead "-L" Fixed: =================================================================== diff --git a/perf/CMakeLists.txt b/perf/CMakeLists.txt index 06603dfd..d03d74a0 100644 --- a/perf/CMakeLists.txt +++ b/perf/CMakeLists.txt @@ -47,7 +47,7 @@ macro(AddBenchTarget perf_suite) add_custom_target(${perf_suite}) add_custom_target(${perf_suite}-console COMMAND ${CMAKE_CTEST_COMMAND} - -L ${perf_suite} + --label-regex ${perf_suite} --parallel 1 --verbose --output-on-failure =================================================================== > > + --parallel 1 > > + --verbose > > + --output-on-failure > > + --no-tests=error > > + ) > > + add_dependencies(${perf_suite}-console luajit-main) > > +endmacro() > > + > > +# Add the bench to the pair of targets created by the call above. > > +macro(AddBench bench_name bench_path perf_suite LUA_PATH) > > + set(bench_title "perf/${perf_suite}/${bench_name}") > > + get_filename_component(bench_name_stripped ${bench_name} NAME_WE) > > + set(bench_out_file > > + ${PERF_OUTPUT_DIR}/${perf_suite}/${bench_name_stripped}.json > > + ) > > + set(bench_command "${LUAJIT_BINARY} ${bench_path}") > > + if(${ARGC} GREATER 4) > > + set(input_file ${ARGV4}) > > + set(bench_command "${bench_command} < ${input_file}") > > + endif() > > + set(BENCH_FLAGS > > + "--benchmark_out_format=json --benchmark_out=${bench_out_file}" > > Why BENCH_FLAGS is in uppercase and bench_command_flags in lower-case? > > What is the difference? > > Also, it seems these variables are unused and can be removed: > > @ -56,10 +58,6 @@ macro(AddBench bench_name bench_path perf_suite LUA_PATH) >      set(input_file ${ARGV4}) >      set(bench_command "${bench_command} < ${input_file}") >    endif() > -  set(BENCH_FLAGS > -    "--benchmark_out_format=json --benchmark_out=${bench_out_file}" > -  ) > -  set(bench_command_flags ${bench_command} ${BENCH_FLAGS}) >    separate_arguments(bench_command_separated UNIX_COMMAND > ${bench_command}) >    add_custom_command( >      COMMAND ${CMAKE_COMMAND} -E env > Dropped, thanks! =================================================================== diff --git a/perf/CMakeLists.txt b/perf/CMakeLists.txt index 5a5cf777..0916402e 100644 --- a/perf/CMakeLists.txt +++ b/perf/CMakeLists.txt @@ -63,10 +63,6 @@ macro(AddBench bench_name bench_path perf_suite LUA_PATH) set(input_file ${ARGV4}) set(bench_command "${bench_command} < ${input_file}") endif() - set(BENCH_FLAGS - "--benchmark_out_format=json --benchmark_out=${bench_out_file}" - ) - set(bench_command_flags ${bench_command} ${BENCH_FLAGS}) separate_arguments(bench_command_separated UNIX_COMMAND ${bench_command}) add_custom_command( COMMAND ${CMAKE_COMMAND} -E env =================================================================== > > + ) > > + set(bench_command_flags ${bench_command} ${BENCH_FLAGS}) > > + separate_arguments(bench_command_separated UNIX_COMMAND ${bench_command}) > > + add_custom_command( > > + COMMAND ${CMAKE_COMMAND} -E env > > + LUA_PATH="${LUA_PATH}" > > + LUA_CPATH="${LUA_CPATH}" > > + ${bench_command_separated} > > + --benchmark_out_format=json > > + --benchmark_out="${bench_out_file}" > > + OUTPUT ${bench_out_file} > > + DEPENDS luajit-main > > + COMMENT > > + "Running benchmark ${bench_title} saving results in ${bench_out_file}." > > + ) > > + add_custom_target(${bench_name} DEPENDS ${bench_out_file}) > > + add_dependencies(${perf_suite} ${bench_name}) > > + > > + # Report in the console. > > + add_test(NAME ${bench_title} > > + COMMAND sh -c "${bench_command}" > > I propose to use find_program for shell executable, like we do in > tarantool's root cmakelists.txt: > > --- a/perf/CMakeLists.txt > +++ b/perf/CMakeLists.txt > @@ -1,5 +1,7 @@ >  # Running various bench suites against LuaJIT. > > +find_program(SHELL sh) > + >  include(MakeLuaPath) > >  if(CMAKE_BUILD_TYPE STREQUAL "Debug") > @@ -78,7 +80,7 @@ macro(AddBench bench_name bench_path perf_suite LUA_PATH) > >    # Report in the console. >    add_test(NAME ${bench_title} > -    COMMAND sh -c "${bench_command}" > +    COMMAND ${SHELL} -c "${bench_command}" >    ) >    set_tests_properties(${bench_title} PROPERTIES >      ENVIRONMENT "LUA_PATH=${LUA_PATH}" Added: =================================================================== diff --git a/perf/CMakeLists.txt b/perf/CMakeLists.txt index 0916402e..e3af1996 100644 --- a/perf/CMakeLists.txt +++ b/perf/CMakeLists.txt @@ -2,6 +2,11 @@ include(MakeLuaPath) +find_program(SH sh) +if(NOT SH) + message(FATAL_ERROR "`sh' is not found") +endif() + if(CMAKE_BUILD_TYPE STREQUAL "Debug") message(WARNING "LuaJIT and perf tests are built in the Debug mode. " "Timings may be affected.") @@ -81,7 +86,7 @@ macro(AddBench bench_name bench_path perf_suite LUA_PATH) # Report in the console. add_test(NAME ${bench_title} - COMMAND sh -c "${bench_command}" + COMMAND ${SH} -c "${bench_command}" ) set_tests_properties(${bench_title} PROPERTIES ENVIRONMENT "LUA_PATH=${LUA_PATH}" =================================================================== > > + ) > > + set_tests_properties(${bench_title} PROPERTIES > > + ENVIRONMENT "LUA_PATH=${LUA_PATH}" > > + LABELS ${perf_suite} > > + DEPENDS luajit-main > > + ) > > + unset(input_file) > > +endmacro() > > + -- Best regards, Sergey Kaplun