Skip to content

Releases: jfriesne/muscle

6.33 release

25 Feb 18:35
Compare
Choose a tag to compare

6.33 Released 2/25/2016

  • When MUSCLE_USE_CPLUSPLUS11 is defined, the Queue class
    no longer bothers resetting values in its internal array
    to their default state, if ItemType is a trivial type.
  • When MUSCLE_USE_CPLUSPLUS11 is defined, the Hashtable class
    no longer bothers resetting values in its internal array
    to their default state, if their type (KeyType or ValueType)
    is a trivial type.
  • When MUSCLE_USE_CPLUSPLUS11 is defined, the SanitySetupSystem
    class constructor now does some basic sanity checks on the
    std::is_trivial() method to make sure it is working as expected.
  • hexterm now prints time-since-previous-received-data whenever
    it prints incoming data, for easier performance checking.
  • Added GetBuildFlags(), PrintBuildFlags() and LogBuildFlags()
    functions to SystemInfo.h so that it's easy for a MUSCLE-based
    executable to report the preprocessor flags it was built with.
    This can be handy for debugging purposes.
  • muscled now reports its build-flags at startup, if is launched
    with log level "debug" or higher (e.g. "displaylevel=debug").
  • Added a WithInterfaceIndex() convenience method to the
    IPAddressAndPort class.
  • Usage of the DetectNetworkConfigChangesSession class has
    been simplified. In particular, it is no longer necessary
    to subclass this class in order to use it; instead you can
    now just have any of your existing session or factory subclasses
    implement the new INetworkConfigChangesTarget interface, and
    the DetectNetworkConfigChangesSession will call their
    INetworkConfigChangesTarget methods when appropriate.
  • The Windows-only "console" command line argument now can take
    an optional value; e.g. console=foo.txt will cause the program's
    stdout and stderr output to be redirected to file foo.txt.
  • The Win32AllocateStdioConsole() function now takes an optional
    argument, as described above.
  • hexterm now looks for a "nojoin" command line argument when a
    multicast group is specified; if found, it will deliberately
    not join the multicast group (and become a send-only UDP session)
    o DetectNetworkConfigChangesSession::SetEnabled(false) now also
    suppresses calls to ComputerIsAboutSleep() and ComputerJustWokeUp().
    o The DECLARE_REFTYPES macro now specifies the muscle namespace
    explicitly, to make it easier to use from other namespaces.
  • Fixed an underflow bug in LogHexBytes() and friends that would
    cause 4 billion dashes to be printed if the title text was
    too long.
  • hexterm.vcproj now includes the necessary shlwapi.lib dependency

6.32 Release

04 Dec 00:35
Compare
Choose a tag to compare

6.32 Released 12/3/2015

  • Added support for a new compiler flag,
    -DMUSCLE_RECORD_REFCOUNTABLE_ALLOCATION_LOCATIONS,
    that makes it easier to track down the cause of
    RefCountable objects not getting freed properly on
    process exit. See BUILDOPTIONS.TXT for details.
  • Tweaked SetupSystem.cpp so that using it no longer
    requires MiscUtilityFunctions.cpp to be compiled also.
  • The _childProcessCrashed flag is now reset by
    WaitForChildProcessToExit() only when there is a child
    process handle available to wait on. That way multiple
    calls to WaitForChildProcessToExit() won't obliterate
    the child-process-crashed information.
  • Under Windows, the default handled-signals set now
    also includes CTRL_C_EVENT and CTRL_BREAK_EVENT, so
    that when running "muscled.exe catchsignals", these
    keystrokes can also be used to cleanly shut down the
    muscled process.

6.31 Release

28 Aug 02:35
Compare
Choose a tag to compare

6.31 Released 8/27/2015

  • The ChildProcessDataIO class now has a DidChildProcessCrash()
    method that will return true iff WaitForChildProcessToExit()
    detected that the child process exited due to an unhandled
    signal rather than via a normal process termination.
  • In v6.30, the windows implementation of ChildProcessDataIO
    would always hide the child process's windows, even in cases
    where it was desirable for the child process's windows to be
    visible. To avoid that misbehavior, the child process's windows
    are now hidden only if the CHILD_PROCESS_LAUNCH_BIT_WIN32_HIDE_GUI
    bit is set in the (launchBits) argument.
  • Some of the the DOxygen comments for enumerations in the
    header files were not formed correctly, so the DOxygen
    HTML pages would leave them undocumented. Fixed.
  • Fixed a compiler warning in MessageField::IsEqualTo().

6.30 Release

11 Aug 18:55
Compare
Choose a tag to compare

6.30 Released 8/11/2015

  • The Message class now uses special-case variant logic for fields
    that contain only a single value, so that in the common case
    the allocation of an AbstractDataArray object is avoided.
  • Added a convenience overload of GetMessageFromPool() that
    takes a ByteBufferRef as its argument.
  • Merged in Mika's patch to fix the _sntprintf_s() calls in
    the Windows implementation of SysLog.cpp.
  • DetectNetworkConfigChanges.cpp would fail to compile under Windows
    under some circumstances, due to unicode-string handling issues.
    Fixed.
  • Added spaces to *_FORMAT_SPEC tokens in dataio/RS232DataIO.cpp
  • Added missing namespace qualifiers to MCRASH() macro, so that it
    can be called from another namespace.
  • Fixed a bug in the Hashtable class that could cause crashes
    after a call to EnsureSize(0, true).
  • Message::Unflatten() now resizes the Message's entries-Hashtable
    to be the exact size of the number of entries it will contain.
  • Added some #includes to the gz*.c zlib files so "implicit
    function declaration" warnings are no longer emitted when
    compiling under MacOS/X.
  • Fixed a static-initialization-ordering bug in the ObjectCounterBase
    class that could cause it to try and lock an invalid Mutex during
    process startup or shutdown.
  • Under Windows, use of the ChildProcessDataIO class could cause
    an empty Console window to appear. That no longer happens.

6.23 release

08 Jul 05:15
Compare
Choose a tag to compare

6.23 Release 7/7/2015

  • The StringMatcher class now has a IsPatternListOfUniqueValues()
    method that returns true iff the that pattern is a comma-separated
    list of non-wildcarded values.
  • NodePathMatcher::DoTraversalAux() was using a Queue as a cache,
    which could be inefficient due to O(N^2) lookups in certain cases.
    Replaced it with a Hashtable for better performance.
  • Optimized the NodePathMatcher algorithm to be more efficient
    when node-paths that include clauses that are long lists of
    comma-separated node names.
  • SharedFilterSessionFactory.cpp wouldn't compile if
    -DMUSCLE_AVOID_IPV6 was specified on the compile line. Fixed.

6.22 release

11 Jun 18:58
Compare
Choose a tag to compare

6.22 Released 6/11/2015

  • Added an IsWaitingForEvents() method to ReflectServer class,
    so that a (user-supplied) watchdog thread can observe when the
    ReflectServer is blocked waiting for I/O vs when it is doing
    something.
  • Added Mika's vc++14 subdirectory, which contains Visual C++
    project files for Visual Studio 2015.
  • DataNode::GetAncestorNode() now takes an optional second argument
    that tells it what to return if the ancestor node isn't found.
    o Added some more Cygwin/MinGW compatibility changes contributed
    by Mika Lindqvist.
    o Rewrote some of the node-traversal callback methods so that they
    no longer pass an integer argument by casting it to (void *).
  • Tweaked various files to fix warnings reported by cppcheck 1.69.
  • The stdout-display in qt_muscled wasn't read-only. Fixed.

6.21 release

14 May 20:43
Compare
Choose a tag to compare

6.21 Released 5/14/2015
o Merged in Mika Lindqvist's patch to make the StackWalker code
use less stack space.
o Merged in Mika Linkdqvist's patches for better Cygwin compatibility.

  • Made the StackWalker code a bit more robust.
  • Merged in Mika Lindqvist's patch to the VC++12 projects
    to link debug builds against the MultiThreadedDebug
    run time library rather than the MultiThreaded library.
  • Fixed a couple of const-correctness issues in the StackWalker code.
    o Modified the Windows implementation of GetNetworkInterfaceInfos()
    to not specify an interface index for IPv6 network device address
    ::1, as doing so causes UDP-packet-routing problems under Windows 7.

v6.12 release

06 Apr 20:21
Compare
Choose a tag to compare

6.12 Released 4/6/2015

  • The Python message_transceiver_thread class will now
    fall back to connecting via IPv4 if the supplied hostname
    cannot be expanded to an IPv6 address (and vice versa).
  • Added a NotCopyable base class to various classes
    (Socket, DataNode, AbstractReflectSession, etc) so that
    the compiler will verify that they are not being copied.
  • The StringMatcher class now interprets any simple wildcard
    string starting with a backtick character (`) as indicating
    a non-simple regex string. That way it is possible to use
    the standard regex functionality, if desired, in contexts
    that otherwise provide no way to indicate that a string
    is meant to be a full regex string and not a simple wildcard
    string (e.g. in MUSCLE subscription strings)
  • Tweaked the codebase to get rid of a number of style
    problems and minor errors that were reported by cppcheck.
  • Added a patch to the captive regex library to fix a
    potential int32-overrun in regcomp(). Thanks to Mika
    Lindqvist for supplying me with the patch.
  • Merged in some patches from Mika Lindqvist to avoid
    some warnings when compiling in a 64-bit environment.

6.05 release

27 Jun 21:00
Compare
Choose a tag to compare

6.05 Released 6/27/2014

  • Upgraded the captive zlib implementation to v1.2.8.
  • Moved public repository from FreeCode to GitHub, because
    FreeCode no longer accepts release announcements.
  • Renamed LICENSE.txt to LICENSE, since that's how GitHub
    likes the license file to be named.
  • Merged in Mika Lindqvist's patch to avoid some truncation
    warnings for strlen() calls under 64-bit Visual C++.