yasmine downloads

Library

The source code of yasmine and all releases can also be found on GitHub.

1.5.3

Versions

Component

Version

libyasmine

1.3.7

yasmine_model

0.2.1

libygen

0.1.3

ygen

0.1.5

The 26th release of yasmine (Release date: August 14, 2018)

Fixed

  • added includes for the case when logging is disabled via SX_NO_LOGGING=NO

  • renamed Y_ASSERT to SX_ASSERT in region_impl.cpp

  • added essentials/base.hpp include in yasmine.hpp

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2017. For building a Visual Studio 2017 solution and CMake files are contained.

1.5.2

Versions

Component

Version

libyasmine

1.3.6

yasmine_model

0.2.1

libygen

0.1.3

ygen

0.1.5

The 25th release of yasmine (Release date: July 23, 2018)

Fixed

  • backward compatibility includes

  • CMake installation target refactored

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2017. For building a Visual Studio 2017 solution and CMake files are contained.

1.5.1

Versions

Component

Version

libyasmine

1.3.5

yasmine_model

0.2.1

libygen

0.1.3

ygen

0.1.5

The 24th release of yasmine (Release date: May 16, 2018)

Changed

  • removed unnecessary virtual inheritances

Fixed

  • added new line at the end of some files (resolves warnings for clang 5.0.1)

  • bug in CMake file with checking the same condition (addSpecificFlags, checking CPPVERSION)

  • missing optimization flag for release build with gcc and clang (addSpecificFlags.cmake)

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2017. For building a Visual Studio 2017 solution and CMake files are contained.

1.5.0

Versions

Component

Version

libyasmine

1.3.4

yasmine_model

0.2.0

libygen

0.1.3

ygen

0.1.5

The 23rd release of yasmine (Release date: December 18, 2017)

Added

  • (C++03) BOOST_BIND_OVER_9 - removes the limit of 7 methods/free functions as parameters for creating behaviors/guards using the assembly macros. The limit is because of boost::bind limitation to 9 arguments.

  • (C++11) Y_BEHAVIOR_FREE_ACTION macro for using a free function as a behavior

  • (C++11) Y_GUARD_FREE_ACTION macro for using a free function as guard

  • yasmine_model:

    • new methods to interact with the elements (e.g. get_child, set_parent, ...)

    • new methods to interact with the state machine (e.g. remove_event, get_event, remove_transition, get_transition, ...)

    • rapidjson_document.hpp as a wrapper for rapidjson/document.h and rapidjson/prettywriter.h

    • delete_visitor for deleting elements

    • has_error_event to simple state model

    • add_deferred_event and remove_deferred_event to state model

    • constuctor to easily construct an async simple state model

    • setters in transition_model for behavior, guard, triggers, target, source, and kind

    • methods to get the element that deferes an event and to check if an element deferes an event

    • list of external vertices

Changes

  • Y_INVALID_EVENT_CREATION_REQUEST_HANDLE is now „external“

  • use essentials and hermes as libraries

  • CMake: Adapt to use essentials and hermes as libraries. Applies to examples as well.

  • yasmine_:model:

    • internally use rapidjson_document.hpp instead of document.h

    • event_model is now a class and has getters and setters for its properties

    • use essentials as a library

    • CMake: use external CMakeHelpers files

  • libygen:

    • use essentials as library

    • CMake: use external CMakeHelpers files

    • CMake: refactoring of build scripts

  • ygen:

    • CMake: use external CMakeHelpers files

    • CMake: refactoring of build scripts

Fixed

  • bug with use of old method signature for macros Y_BEHAVIOR_ACTION and Y_GUARD_ACTION

  • yasmine_model:

    • read/write error event from/to model file

    • read/write region from/to model file: 'pseudostates' list is read for backward compatibility. Just 'vertices' is written.

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2017. For building a Visual Studio 2017 solution and CMake files are contained.

1.4.3

Versions

Component

Version

libyasmine

1.3.3

yasmine_model

0.1.5

libygen

0.1.2

ygen

0.1.4

The 22nd release of yasmine (Release date: November 10, 2017)

Added

  • Y_USE_DEPRECATED to make deprecated features available

  • essentials: SX_UNUSED_VARIABLE macro for suppressing warnings for unreferenced variable.

Changes

  • split assembly header in two files: one for C++11 and up and one for C++03

  • caller.hpp became behavior_caller.hpp

  • caller_adapter.hpp became adapter.hpp

  • major improvements for C++03 support

Fixed

  • create_behavior_function and create_guard_function (internally used in assembly.hpp) are now in namespace sxy

  • bug with missing get_error_event implementation in composite_state_impl

  • bug with missing dereference operator in behavior_caller and guard_caller

  • yasmine_model:

    • removed move operation from return where a local created unique pointer is returned

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2017. For building a Visual Studio 2017 solution and CMake files are contained.

1.4.2

Versions

Component

Version

libyasmine

1.3.2

yasmine_model

0.1.4

libygen

0.1.2

ygen

0.1.4

The 21st release of yasmine (Release date: October 26, 2017)

Added

yasmine_model:

  • rapidjson_document header as a wrapper for RapidJSON usage

Changes

  • CMake: changes of RapidJSON include path handling

Fixed

  • bug: enqueuing of an event failed during the start of an async state machine

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2017. For building a Visual Studio 2017 solution and CMake files are contained.

1.4.1

Versions

Component

Version

libyasmine

1.3.1

yasmine_model

0.1.3

libygen

0.1.2

ygen

0.1.4

The 20th release of yasmine (Release date: October 16, 2017)

Changes

  • CMake files refactoring. Improvements to make cross compiling easier.

  • pragma warning just for Micsoft Visual Studio compiler. Removed -Wunknown-pragmas from CMake file.

  • fix in sxprintf: added missing boost namespace

  • fix: using SX_UNUSED_PARAMETER macro in return of function in assembly.hpp

  • yasmine_model:

    • fix: include path of prettywriter header

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2017. For building a Visual Studio 2017 solution and CMake files are contained.

1.4.0

Versions

Component

Version

libyasmine

1.3.0

yasmine_model

0.1.2

libygen

0.1.1

ygen

0.1.3

The 19th release of yasmine (Release date: September 21, 2017)

Changes

  • added support for Visual Studio 2017 builds

  • complex states (root state of the state machine, simple states and composite states) now have a method called add_deferred_event. This method adds an event ID to the list of the deferred events IDs. This method is not thread-safe a must only be used before starting the state machine

  • On start of the state machine, the root state becomes active and on stop it becomes inactive.

  • fix bug with ::std::toupper and ::std::tolower (reported for VS2017 compiler, version 15.3.4)

  • get_name is now a public method of the state_machine class

  • genesis:

    • fix minor formatting bug in template file header.gtpl

    • remove unused include in template file source.gtpl

  • yasmine_model:

    • removed declaration of 'get_enter_behavior' from the interface composite_state_model because it is already declared in the inherited state_model interface

    • removed declaration of 'set_enter_behavior' from the interface composite_state_model because it is already declared in the inherited state_model interface

    • removed declaration of 'get_exit_behavior' from the interface composite_state_model because it is already declared in the inherited state_model interface

    • removed declaration of 'set_exit_behavior' from the interface composite_state_model because it is already declared in the inherited state_model interface

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2017. For building a Visual Studio 2017 solution and CMake files are contained.

1.3.3

Versions

Component

Version

libyasmine

1.2.3

yasmine_model

0.1.2

libygen

0.1.1

ygen

0.1.2

The 18th release of yasmine (Release date: August 22, 2017)

Changes

  • CMake: setting rapidJSON path by setting the SX_RAPIDJSON variable

  • SX_GCC_EXPAND_TEMPLATE_PARAM_PACK_BUG: workaround for bug in GCC with expansion of template parameter pack that appears in a lambda-expression (reported for GCC 4.8.4)

  • bug when passing template class member function to Y_BEHAVIOR_METHOD2 and Y_GUARD_METHOD2 (reported for GCC 5.0.4)

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015. For building a Visual Studio 2015 solution and CMake files are contained.

1.3.2

Versions

Component

Version

libyasmine

1.2.2

yasmine_model

0.1.2

libygen

0.1.1

ygen

0.1.2

The 17th release of yasmine (Release date: August 17, 2017)

Changes

  • bug fix for const_iterator for compilers that have no C++11 support

  • bug fix for wrong macro use in loging for C++03

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015. For building a Visual Studio 2015 solution and CMake files are contained.

1.3.1

Versions

Component

Version

libyasmine

1.2.1

yasmine_model

0.1.2

libygen

0.1.1

ygen

0.1.2

The 16th release of yasmine (Release date: August 14, 2017)

Changes

  • CMake file improvements: Set C++-standard version (when using gcc) using CPP_VERSION with values '03' for C++03, '14' for C++14. Default is C++11.

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015. For building a Visual Studio 2015 solution and CMake files are contained.

1.3.0

Versions

Component

Version

libyasmine

1.2.0

yasmine_model

0.1.2

libygen

0.1.0

ygen

0.1.1

The 15th release of yasmine (Release date: June 26, 2017)

Changes

  • added state machine handler for unhandled events

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015. For building a Visual Studio 2015 solution and CMake files are contained.

1.2.1

Versions

Component

Version

libyasmine

1.1.2

yasmine_model

0.1.0

libygen

0.1.0

ygen

0.1.1

The 14th release of yasmine (Release date: April 28, 2017)

Changes

  • spelling correction in ygen

  • CMake file: header files of libraries are now installed in their own directories

  • CMake file: platform parameter (m32/32-bit, m64/64-bit) no longer got a default value

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015. For building a Visual Studio 2015 solution and CMake files are contained.

1.2.0

Versions

Component

Version

libyasmine

1.1.2

yasmine_model

0.1.0

libygen

0.1.0

ygen

0.1.0

The 13th release of yasmine (Release date: April 25, 2017)

Changes

  • added yasmine_model library

  • added libygen library

  • added ygen application

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015. For building a Visual Studio 2015 solution and CMake files are contained.

1.1.1

The 12th release of yasmine (Release date: April 07, 2017)

Changes

  • added SX_NO_ASSIGNMENT_OPERATOR in exception template class (created using SX_EXCEPTION macro)

  • essentials and hermes macros have now SX_ instead of Y_ prefix

  • fixes for log messages

  • code documentation improvements

The changelog can be found here as well.

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015. For building a Visual Studio 2015 solution and CMake files are contained.

1.1.0

The 11th release of yasmine (Release date: March 06, 2017)

Changes

  • logging of state machine construction

  • overloaded methods to add transitions that are enabled for multiple event IDs to state machine

  • log when a pseudostate is reached by a transition

  • interrupt method for the state machine: abort a state machine run even during a compound transition

  • possibility to fire event from within states and transitions

  • new example for demonstrating the feature of firing events from states and transitions

  • new macros for creating behaviors, guards and events

The changelog can be found here as well.

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015. For building a Visual Studio 2015 solution and CMake files are contained.

1.0.1

The 10th release of yasmine (Release date: February 08, 2017)

Changes

  • 'halt' method of asynchronous behavior was renamed to 'halt_and_join'

  • bug: Halting an async_state_machine lead to state machine::halt being called before joining the thread that processes events. This could trigger an assert if there were still events enqueued for processing. Also this could lead to the premature termination of async do behaviors or to async do behaviors not being terminated at all.

The changelog can be found here as well.

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015. For building a Visual Studio 2015 solution and CMake files are contained.

1.0.0

The 9th release of yasmine and the first stable version (Release date: January 20, 2017)

Changes

  • The logger now has got a halt_and_join method.

  • Logging: A message that can be waited for.

  • wait methods in async state machine

  • terminated method in async state machine for checking if the state machine is terminated or stopped

  • Y_EVENT_CREATE overloaded macro for creating event classes with up to 10 parameters

  • overloaded macros Y_BEHAVIOR_METHOD_EVENT and Y_BEHAVIOR_FUNCTION_EVENT support up to 10 parameters

  • Y_EMPTY_GUARD for creating an empty guard

  • The event ID of the completion event, COMPLETION_EVENT_ID, was changed to Y_COMPLETION_EVENT_ID and resides inside the sxy namespace.

  • new checks

  • bug fixes

  • code improvements

The entire changelog can be found here.

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015. For building a Visual Studio 2015 solution and CMake files are contained.

0.6.1 (Beta 7)

The 8th release of yasmine (Release date: December 12, 2016)

Changes

  • bug fix: invalid state exit on external transition returning into source state

  • replaced platform/compiler specific code with a single solution, removed dead code, minor refactoring

The entire changelog can be found here.

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015. For building a Visual Studio 2015 solution and CMake files are contained.

0.6.0 (Beta 6)

The 7th release of yasmine (Release date: December 09, 2016)

Changes

  • C++03 compatibility

  • A new example: Events with parameters. It explains how to use events with parameters utilizing the corresponding macros.

  • Another new example: Sub state machine with variables. This one shows how to use sub state machines and state-local variables.

  • Macros for setting handlers (that expect a certain event type) as behaviors of states (do, enter exit) or transitions.

The entire changelog can be found here.

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015. For building a Visual Studio 2015 solution and CMake files are contained.

0.5.0 (Beta 5)

The 6th release of yasmine (Release date: November 07, 2016)

Changes

  • Y_EMPTY_BEHAVIOR for creating a behavior that does nothing

  • CMake files for builds under Linux (gcc, clang) and Windows (Visual Studio)

The entire changelog can be found here.

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015. For building a Visual Studio 2015 solution and CMake files are contained.

0.4.0 (Beta 4)

The 5th release of yasmine (Release date: October 07, 2016)

Changes

  • Y_OPTIMIZE_4_SPEED and Y_OPTIMIZE_4_MEMORY macros for internal optimization of ancestor lists (performance improvements)

  • Y_PROFILER macro was added. When compiled with this macro, the state machine will count the events that were processed.

  • 'LL_OFF' as default log level

  • assembly.hpp macros were improved to avoid ambiguous function calls

  • when Y_NO_LOGGING is defined, no log code will be compiled into the library at all

  • fixed an error when compiling with gcc (const std::string transition_impl::get_transition_name)

  • The handle generator for the timed events is no longer a random function.

The entire changelog can be found here.

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015.

0.3.0 (Beta 3)

The 4th release of yasmine (Release date: September 16, 2016)

Changes

  • New feature: priority for events and event priority processing in the state machine

  • The extension of the headers is now .hpp instead of .h.

  • both the synchronous and asynchronous state machines use "start_state_machine" and "stop_state_machine" methods to start and stop the state machines

  • "start_state_machine" will return now true if the state machine was started and is running and false if a terminate pseudostate was reached or the state machine encountered a problem and is shutting down

  • COMPLETION_EVENT will have now the maximum value of event_id (std::uint32_t -> 4.294.967.295 or 0xFFFFFFFF) instead of 0

  • 'noexcept' for all destructors

  • simple state and asynchronous simple state store an error event instead of a behavior exception

  • Fixed a problem with the URI of the state machine elements. Now, the URI contains all the element's ancestors

The entire changelog can be found here.

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015.

0.2.0 (Beta 2)

The 3rd release of yasmine (Release date: August 19, 2016)

Changes

The entire changelog can be found here.

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015.

0.1.1 (Beta 1)

The 2nd release of yasmine (Release date: July 22, 2016)

Changes

  • Source code formatting (function declarations, function definitions, function calls, and other minor changes)

  • Updated license (read more)

The download provides a complete archive containing licenses, source code and pre-built (static) libraries and examples (binaries) for VS 2015.

0.1.0 (Beta 0)

The very first released version of yasmine (Release date: June 20, 2016)

The download provides a complete archive containing licenses, source code, and pre-built (static) libraries and examples (binaries) for VS 2015: