Skip to content

Latest commit

 

History

History
36 lines (34 loc) · 3.11 KB

CONTRIBUTING.md

File metadata and controls

36 lines (34 loc) · 3.11 KB

Towards our noble goal of making C++17 compilers less buggy using kscope-provided testing, contributions in the following fields look the most interesting (feel free to make your own suggestions too, below is just a list of the-most-obvious-ideas):

  • running existing randomtest.sh/randomtest.bat tests in /test/ folder – and be ready to report bugs to respective compiler writers too. To do it – find a box which is not-too-shabby in terms of RAM (at least 4G RAM+4G swap is recommended), then clone the latest master branch of kscope there, and you should be good to go. Running existing tests might help to reveal bugs under:
    • supposedly-C++17-compliant compilers-other-than-Clang/GCC/MSVC (when they start to support all-we-need-from-C++17, with constexpr support, including constexpr-if, being the most-likely-missing features)
      • when the support from other compilers comes, most likely kscope will require some code changed patches to support such other-compilers; such patches are ESPECIALLY welcome
    • versions of compilers other-than-{Clang5,GCC7.2,MSVC from VS 15.5.5) (while newer versions are supposed to work, in practice you never know)
      • of special interest are regressions in top-of-the-trunk compilers
    • compiler options different from those currently used
      • will require hacking test/randomtestgen.cpp - and such patches are ESPECIALLY welcome.
    • platforms other x86/x64 (in theory, should be ok – but the less common the platform is, the more chance that subtle codegen bugs in it are sitting there for ages :-( ).
    • operating systems other than Linux/Mac OS X/Windows
      • supporting such systems may require some patching of .sh or test/randomtestgen.cpp - such patches is ESPECIALLY welcome.
    • Oh, and if/when you find some bug (which may or may not happen):
      • try to check whether it can be a bug in the ithare::kscope (it can happen; TBH, currently about 50% of the bugs found are still within kscope :-( )
      • after reporting the bug to the respective compiler team – please drop me a line, I will add your bug report to the /README.md (if you want - with your name too :-) ).
  • adding new injections (along the lines of src/kscope_sample_extension.h); they’re really important to have as-much-stuff-tested as possible. Ideally – there would be whole libraries of different injections, so even more scenarios can be tested.
  • for the most adventurous :-) – adding new kaleidoscoped functions, also to increase the number of the scenarios-being-tested, though in a completely different space. Currently, of the most interest are (a) not-system-related (~="pure") std:: functions (such as algorithms and containers), and (b) crypto-functions and parsers (in particular, from TLS); (a) will allow to kaleidoscop things further, and (b) will allow to have more of compile-time crypto (and things such as compile-time ASN.1 parser, etc.). If you’re interested – take a look at kaleidoscoped/ folder, and see whether you like it (this is NOT documented yet, but I can be reached at nobugs@ithare.com to answer any questions you may have).