[Tarantool-patches] [PATCH luajit 3/4][v2] cmake: introduce target with codespell

Sergey Bronnikov sergeyb at tarantool.org
Mon Oct 23 15:29:32 MSK 2023


Hi, Sergey

On 10/23/23 12:20, Sergey Kaplun wrote:
> Hi, Sergey!
> Thanks for the patch!
> Please, consider my comments below.
>
> On 11.10.23, Sergey Bronnikov wrote:
>> From: Sergey Bronnikov <sergeyb at tarantool.org>
>>
>> The patch introduces a new CMake target: "LuaJIT-codespell", that
>> spellchecks files specified in a whitelist by codespell [1].
>>
>> 1. https://github.com/codespell-project/codespell
>> ---
>>   CMakeLists.txt                   |  1 +
>>   cmake/CodeSpell.cmake            | 36 ++++++++++++++++++++++++++++++++
>>   test/CMakeLists.txt              |  1 +
>>   tools/codespell-ignore-words.txt |  3 +++
>>   4 files changed, 41 insertions(+)
>>   create mode 100644 cmake/CodeSpell.cmake
>>   create mode 100644 tools/codespell-ignore-words.txt
>>
>> diff --git a/CMakeLists.txt b/CMakeLists.txt
> <snipped>
>
>> diff --git a/cmake/CodeSpell.cmake b/cmake/CodeSpell.cmake
>> new file mode 100644
>> index 00000000..c4d3555d
>> --- /dev/null
>> +++ b/cmake/CodeSpell.cmake
>> @@ -0,0 +1,36 @@
>> +find_program(CODESPELL codespell)
>> +
>> +list(APPEND CODESPELL_WHITELIST ${PROJECT_SOURCE_DIR}/src/lj_mapi.c)
>> +list(APPEND CODESPELL_WHITELIST ${PROJECT_SOURCE_DIR}/src/lj_sysprof.c)
>> +list(APPEND CODESPELL_WHITELIST ${PROJECT_SOURCE_DIR}/src/lj_utils_leb128.c)
>> +list(APPEND CODESPELL_WHITELIST ${PROJECT_SOURCE_DIR}/src/lj_wbuf.c)
>> +list(APPEND CODESPELL_WHITELIST ${PROJECT_SOURCE_DIR}/src/luajit-gdb.py)
>> +list(APPEND CODESPELL_WHITELIST ${PROJECT_SOURCE_DIR}/src/luajit_lldb.py)
>> +list(APPEND CODESPELL_WHITELIST ${PROJECT_SOURCE_DIR}/test/CMakeLists.txt)
>> +list(APPEND CODESPELL_WHITELIST ${PROJECT_SOURCE_DIR}/test/tarantool-c-tests)
>> +list(APPEND CODESPELL_WHITELIST ${PROJECT_SOURCE_DIR}/test/tarantool-tests)
>> +list(APPEND CODESPELL_WHITELIST ${PROJECT_SOURCE_DIR}/tools)
> Also, the following files should be checked:
>
> * src/lib_misc.c
> * src/lj_memprof.c
> * src/lj_memprof.h
> * src/lj_sysprof.h
> * src/lj_utils.h
> * src/lj_wbuf.h
> * src/lmisclib.h
> * test/LuaJIT-tests/CMakeLists.txt
> * test/PUC-Rio-Lua-5.1-tests/CMakeLists.txt
> * test/PUC-Rio-Lua-5.1-tests/CMakeLists.txt
> * test/PUC-Rio-Lua-5.1-tests/libs/CMakeLists.txt
> * test/lua-Harness-tests/CMakeLists.txt


Added:

--- a/cmake/CodeSpell.cmake
+++ b/cmake/CodeSpell.cmake
@@ -1,13 +1,25 @@
  find_program(CODESPELL codespell)

  string(JOIN "," CODESPELL_WHITELIST
+  ${PROJECT_SOURCE_DIR}/src/lib_misc.c
    ${PROJECT_SOURCE_DIR}/src/lj_mapi.c
+  ${PROJECT_SOURCE_DIR}/src/lj_memprof.c
+  ${PROJECT_SOURCE_DIR}/src/lj_memprof.h
    ${PROJECT_SOURCE_DIR}/src/lj_sysprof.c
+  ${PROJECT_SOURCE_DIR}/src/lj_sysprof.h
+  ${PROJECT_SOURCE_DIR}/src/lj_utils.h
    ${PROJECT_SOURCE_DIR}/src/lj_utils_leb128.c
    ${PROJECT_SOURCE_DIR}/src/lj_wbuf.c
+  ${PROJECT_SOURCE_DIR}/src/lj_wbuf.h
+  ${PROJECT_SOURCE_DIR}/src/lmisclib.h
    ${PROJECT_SOURCE_DIR}/src/luajit-gdb.py
    ${PROJECT_SOURCE_DIR}/src/luajit_lldb.py
    ${PROJECT_SOURCE_DIR}/test/CMakeLists.txt
+  ${PROJECT_SOURCE_DIR}/test/lua-Harness-tests/CMakeLists.txt
+  ${PROJECT_SOURCE_DIR}/test/LuaJIT-tests/CMakeLists.txt
+  ${PROJECT_SOURCE_DIR}/test/PUC-Rio-Lua-5.1-tests/CMakeLists.txt
+  ${PROJECT_SOURCE_DIR}/test/PUC-Rio-Lua-5.1-tests/CMakeLists.txt
+ ${PROJECT_SOURCE_DIR}/test/PUC-Rio-Lua-5.1-tests/libs/CMakeLists.txt
    ${PROJECT_SOURCE_DIR}/test/tarantool-c-tests
    ${PROJECT_SOURCE_DIR}/test/tarantool-tests
    ${PROJECT_SOURCE_DIR}/tools

>
>> +
>> +set(IGNORE_WORDS ${PROJECT_SOURCE_DIR}/tools/codespell-ignore-words.txt)
>> +
>> +add_custom_target(${PROJECT_NAME}-codespell)
>> +if (CODESPELL)
>> +  add_custom_command(TARGET ${PROJECT_NAME}-codespell
>> +    COMMENT "Running codespell"
>> +    COMMAND
>> +      ${CODESPELL}
>> +        --ignore-words ${IGNORE_WORDS}
>> +        --skip ${IGNORE_WORDS}
>> +        --ignore-words-list fpr
>> +        --check-filenames
>> +        ${CODESPELL_WHITELIST}
>> +    WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
>> +  )
>> +else ()
>> +  set(WARN_MSG "`codespell' is not found, "
>> +               "so ${PROJECT_NAME}-codespell target is dummy")
> The output is splitted (thanks CMake). I found the only way to join
> lines via `string(CONCAT WARN_MSG <str1> <str2>)`.

Fixed:

[1] ~/sources/MRG/tarantool/third_party/luajit$ cmake --build build 
--parallel -t LuaJIT-codespell
codespell is not found, so LuaJIT-codespell target is dummy
Built target LuaJIT-codespell


@@ -28,8 +40,9 @@ if (CODESPELL)
      WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
    )
  else ()
-  set(WARN_MSG "codespell is not found, "
-               "so ${PROJECT_NAME}-codespell target is dummy")
+  set(STR1 "codespell is not found,")
+  set(STR2 "so ${PROJECT_NAME}-codespell target is dummy")
+  string(CONCAT WARN_MSG "${STR1} ${STR2}")
    add_custom_command(TARGET ${PROJECT_NAME}-codespell
      COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --red ${WARN_MSG}
      COMMENT ${MSG}

>
>> +  add_custom_command(TARGET ${PROJECT_NAME}-codespell
>> +    COMMAND ${CMAKE_COMMAND} -E cmake_echo_color --red ${MSG}
>> +    COMMENT ${MSG}
> The ${MSG} is undefined, so this line does nothing and can be deleted.
Fixed.
>
>> +  )
>> +endif (CODESPELL)
> <snipped>
>
>> diff --git a/tools/codespell-ignore-words.txt b/tools/codespell-ignore-words.txt
>> new file mode 100644
>> index 00000000..ceeed47c
>> --- /dev/null
>> +++ b/tools/codespell-ignore-words.txt
>> @@ -0,0 +1,3 @@
>> +mmaped
> Should it be mmapped instead (like map -> mapped)?
removed this work from exclusion list, I don't know why but codespell is 
not warns about it.
>
>> +isnt
>> +FPR
>> -- 
>> 2.34.1
>>


More information about the Tarantool-patches mailing list