Skip to content

9.40 Release

Latest
Compare
Choose a tag to compare
@jfriesne jfriesne released this 24 Jun 12:57
· 3 commits to master since this release

9.40 - Released 6/24/2024

  • Added a MUSCLE_STATIC_ASSERT_ARRAY_LENGTH macro to support/MuscleSupport.h
    so that array declarations can error out at compile time if they don't
    contain the expected number of values.
  • Added a DECLARE_LABELLED_BITCHORD_FLAGS_TYPE macro to support/BitChord.h
    so that BitChord::ToString() can return human-readable bit-labels if desired.
  • Added GetBitLabel() and ParseBitLabel() methods to the BitChord class.
  • DefaultConsoleLogger now checks for a MUSCLE_LOG_TO_STDERR environment
    variable on startup, and if one is present, it will force all Log()
    and LogTime() output to stderr. This is useful in cases where the
    parsing of the "logtostderr" command line argument doesn't happen
    soon enough to prevent all output to stdout.
  • Added GetCenter() and CenterTo() methods to the Rect class.
  • Added | operators to the Rect class that take a Point as an argument.
  • Added a Rect::IsRational() method.
  • Renamed the non-const x() and y() methods of the Point class to
    SetX()/SetY(), to better match the style of the other classes.
  • Added GetX() and GetY() methods to the point class, for consistency.
  • Renamed Rect::Width() to Rect::GetWidth()
  • Renamed Rect::Height() to Rect::GetHeight()
  • Renamed Rect::IntegerWidth() to Rect::GetWidthAsInteger()
  • Renamed Rect::IntegerHeight() to Rect::GetHeightAsInteger()
  • Updated PointerAndBits.h to disable tagged-pointers on 32-bit systems,
    since we can't guarantee that a heap-pointer's high bit won't be
    legitimately set for heap objects on those systems.
  • Changed the windows implementation of muscleSprintf() to use the
    templated inline function used on other OS's, as the old macro-based
    implementation wasn't playing nice with explicit namespaces prefixes.
  • Changed the implementation of muscleFopen() to use inline functions
    instead of macros for better namespace behavior.
  • Changed the implementation of muscleStrcpy() to use templates
    to enforce memory-safery, instead of just being a macro.
  • Added a work-around to Hashtable.h to avoid a spurious compile-time
    error regarding std::atomic under MSVC2017 and earlier.
  • Fixed handling of the head=numbytes argument in the snoopsharedmem tool.