Skip to content

FLiT v2.1.0

Latest
Compare
Choose a tag to compare
@mikebentley15 mikebentley15 released this 19 Mar 18:20
3ab51d4

FLiT is now very stable, so we can exit the beta releases. Honestly, we kept it in the beta release not because the tool was unreliable, but rather because we were unsure if the interface would undergo breaking changes with design reworks.

The interface has stabilized. We may do small breaks of interface in the future, but so far nothing major until FLiT 3.0.

Highlights of Major Changes:

  • Place items from flit::fsutil namespace into the flit namespace (breaking change)
  • MPI
    • Add MPICH support
    • Change MPI usage to be with a main-like function as subprocesses
  • flit bisect
    • Bisect uses information from flit-config.toml if the given compiler matches one specified there.
    • Improve speed of the generated Makefile
    • Add --compiler-type flag
    • Add --ldflags, --add-ldflags, and --use-linker
  • Autogenerated Makefile
    • Use standard GNU Makefile variable names
    • Brief colored output
    • Source files can have any suffix (instead of just .cpp)
    • Removed the automatic insertion of --gcc-toolchain and --gxx-name for the Clang and Intel compilers respectively -- user can now add this from flit-config.toml (documentation added on how to do this)
    • Experimental support for a Ninja build file instead (through flit experimental ninja)
    • Improve speed and responsiveness using more self-recursion
    • Faster make clean by deleting output directories rather than all files
    • Mitigate C++ standard library incompatibility by compiling FLiT source code into each test executable
  • flit-config.toml
    • Add fixed_compile_flags and fixed_link_flags fields for each compiler specified in flit-config.toml
  • Return std::vector of float, double, long double, or std::string from tests. Add a comparison function for each.
  • Add functions to FLiT's C++ interface (can be used in tests): rsplit(), lsplit(), split(), trim(), rstrip(), lstrip(), strip(), basename(), and dirname()
  • Bash-completion

All Issues Addressed:

  • #255 (PR #260): Added --compiler-type flag for flit bisect
  • #222 (PR #264): Added MPICH support
  • #253 (PR #266): Handle different file endings for source files
  • #267 (PR #268): Makefile recursion on dry runs too
  • #269 (PR #270): Faster make clean by deleting destination directories. Also, reorganize destination directories. Add a make dirs target.
  • #49 (PR #271): Return std::vector of floating-point or of std::string from a test
  • #273 (PR #274): Fix flit bisect when calling main as a subprocess
  • #165 (PR #280): Fixed the SimpleCHull litmus test to not use relative paths
  • #272 (PR #275): Add ability to call a main-like function from your test as a subprocess, with or without MPI
  • #216 (PR #281): Use standard Makefile Variable names in autogenerated Makefiles
  • #276 (PR #282): Brief colored output from Makefiles
  • #283 (PR #284): Fix --delete flag behavior for flit bisect
  • #289 (PR #290): Fix automated test for flit bisect involving templates
  • #286 (PR #288): Add helper functions for std::string such as flit::split() and flit::trim(). Remove flit::fsutil namespace
  • #292 (PR #295): Add DESTDIR variable to FLiT's top-level Makefile
  • #296 (PR #297): Fix Makefile color output for older systems and OSX
  • #125 (PR #301): Add fixed_compile_flags and fixed_link_flags to the compiler section in flit-config.toml
  • #302 (PR #303): Experimental support for Ninja build files instead of an autogenerated Makefile
  • #293 (PR #304): Improve usage and testing of mkstemp() and mkdtemp(). Add functions strip(), basename(), and dirname() to FLiT
  • #307 (PR #309): Fix use of fixed_compile_flags and fixed_link_flags from flit bisect
  • #310 (PR #311): Significantly improve responsiveness of autogenerated Makefiles by using more self-recursion
  • #96 (PR #314): All flit functions in the flit namespace
  • #227 (PR #315): Remove hostname from generated files
  • #210 (PR #318): Mitigate C++ standard library incompatibility by compiling FLiT source code into each test executable
  • #133 (PR #322): Create a good default compare() method that handles NaN and inf in a way that makes sense
  • #316 (PR #324): Do not copy Empty.cpp when calling flit init --litmus-tests
  • #320 (PR #321): Update the issue template on GitHub
  • #121 (PR #319): Implement bash-completion for FLiT
  • #308 (PR #325): Add --ldflags, --add-ldflags, and --use-linker to flit bisect