Point G: -ffinite-math-only refusal, compile tests and audit - #91
Merged
Merged
Conversation
…and compile tests
… CMake's as nodiscard_*
…with -ffinite-math-only
…ocumented, volatile bounds
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Point G de
TODO.md: suites du refus de-ffinite-math-only(anciens 5, 53, 54, 55, 40).G.5 : Phrases ambiguës sur
-fno-fast-mathet témoin positifProblème :
doc/three-builds.mdetdoc/using.mdcontenaient des phrases ambiguës sur-fno-fast-math:-fno-fast-mathle suit.Correction :
doc/three-builds.md(l. 156-157) : Remplacé "the option follows it" par "-ffast-mathor-ffinite-math-onlyfollows it".doc/using.md(l. 33) : Remplacé "it comes before them" par "-ffast-mathor-ffinite-math-onlycomes before it".tests/CMakeLists.txt: Ajouté un témoin positif (refused_positive) qui vérifie querefused_options.cppcompile sans option refusée.doc/building.md: Ajouté la mention quemake test(CMake) lance aussi les tests de compilationrefused_*etnodiscard_*.G.53 : Commentaire de
gaol/gaol_config.hProblème : Le commentaire de
-ffinite-math-only(l. 198) disaient encore queis_empty()lit l'ensemble vide comme!(left() <= right()), alors que c'est!std::islessequal(left(), right())depuis #47. La phrase sur([1, 2] & [3, 4]).is_empty()était aussi imprécise.Correction :
gaol/gaol_config.h(l. 198) : Remplacé!(left() <= right())par!std::islessequal(left(), right()).([1, 2] & [3, 4]).is_empty()est faux avec-ffinite-math-only: GCC 13 à -O0, -O2, -O3, Clang 18 à -O0, et à -O2/-O3 seulement avec des bornesvolatile.G.54 : Annexe B n°4 de
examples/examples.mdProblème : L'annexe B n°4 (l. 1072) disaient qu'un test de compilation vérifie le message avec
PASS_REGULAR_EXPRESSION, "astests/fp_strictdoes", alors quetests/fp_strictfait untry_compile()à la configuration.Correction : Remplacé par "a
try_compile()at configure time, astests/fp_strictdoes (Visual C++ only)".G.55 :
.github/auditProblème :
compare.py(l. 25) etmake_probe.py(l. 15) comparaient__FAST_MATH__mais pas__FINITE_MATH_ONLY__.Correction : Ajouté
__FINITE_MATH_ONLY__dans les listes de macros à comparer.G.40 : Tests
refused_*dans un sous-projetProblème : Les tests
refused_*detests/CMakeLists.txtétaient faux quand GAOL est un sous-projet, car ils utilisaientCMAKE_BINARY_DIRetCMAKE_SOURCE_DIR, qui pointent vers le projet parent.Correction :
CMAKE_BINARY_DIRetCMAKE_SOURCE_DIRparCMAKE_CURRENT_BINARY_DIRetCMAKE_CURRENT_SOURCE_DIRdanstarget_include_directories.target_link_libraries(gaol_${name} PRIVATE gaol::gaol)pour que les cibles trouvent les en-têtes de GAOL.Pour
doc/differences.mdetChangeLog(pull request de synthèse)Aucun changement pour l'utilisateur. Il s'agit uniquement de corrections de commentaires, de documentation et de tests internes.
Relecture
Aucune relecture indépendante encore. Les modifications sont documentaires et techniques (tests de compilation).
Vérifié en local
refused_positiveréussies..github/audit/,doc/,examples/,gaol/gaol_config.h,tests/CMakeLists.txt).Non vérifiable ici : Builds autotools et meson, tests de compilation complets, CI.
Dépendances
Aucune.
Questions ouvertes
Aucune.