컴파일러 경고 추적 도구

컴파일러 경고 추적 도구는 개발자의 기여로 새롭게 발생한 컴파일러 경고를 개발자에게 알리기 위한 것입니다. 이 도구는 다음 GitHub 워크플로에서 실행되는 Python 스크립트로 구성됩니다.

다음을 실행하여 Tools/build/check_warnings.py 도구의 문서를 확인할 수 있습니다.:

python Tools/build/check_warnings.py --help

고유한 경고 목록을 확인하려면 컴파일러 출력 파일(출력이 저장되는 파일)과 컴파일러 출력 유형(gcc 또는 clang)을 지정하여 스크립트를 로컬에서 실행할 수 있습니다.:

python Tools/build/check_warnings.py --compiler-output-file-path=compiler_output.txt --compiler-output-type=gcc

GitHub CI에서 경고 검사가 실패할 때 수행할 작업

플랫폼별 경고 무시 파일에 정의된 대로 컴파일러가 특정 소스 파일에 대해 예상보다 많거나 적은 경고를 생성하면 Tools/build/check_warnings.py 도구가 실패합니다. 경고 무시 파일은 플랫폼에 따라 Tools/build/.warningignore_ubuntu 또는 Tools/build/.warningignore_macos입니다.

다음과 같은 이유로 경고 검사가 실패하는 경우:

  • 예기치 않은 경고

    • 경고를 피할 수 있도록 코드 리팩터링을 시도하십시오.

    • 경고를 피할 수 없다면 해당 경고를 무시해도 되는 이유를 PR에 문서화하고 플랫폼별 경고 무시 파일에 경고를 추가하십시오. 해당 파일이 경고 무시 파일에 이미 있으면 새로 발생한 경고 수만큼 개수를 늘리십시오.

  • 예기치 않은 개선(경고 감소)

    • 변경 사항으로 컴파일러 경고 수가 줄어든다는 사실을 PR에 문서화하십시오. 플랫폼별 경고 무시 파일에서 개수를 줄이거나, 개수가 0이 되면 해당 파일 항목을 제거하십시오.

경고 무시 파일 업데이트

경고 무시 파일은 Tools/build/ 디렉터리에서 찾을 수 있습니다. 파일과 디렉터리를 모두 무시 파일에 추가할 수 있습니다. 파일에는 명시적인 경고 개수 또는 와일드카드 개수를 지정할 수 있습니다. 디렉터리 뒤에는 와일드카드 개수를 지정해야 합니다. 와일드카드는 0개 이상의 경고가 무시됨을 나타냅니다. 다음은 경고 무시 파일 형식의 예입니다.:

Modules/_ctypes/_ctypes_test_generated.c.h *
Objects/longobject.c 46
Objects/methodobject.c 1
Objects/mimalloc/ *

와일드카드는 CPython에서 유지 관리하지 않는 코드 또는 테스트용 코드에만 사용할 수 있습니다. 경고 무시 파일의 줄을 사전식 순서로 정렬하여 유지하십시오.