Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Nov 24 07:34

    andrew-gresyk on 1.1.0

    (compare)

  • Nov 24 07:33

    andrew-gresyk on experimental

    (compare)

  • Nov 24 07:33

    andrew-gresyk on master

    1.1.0 * moved dev sources from… (compare)

  • Nov 24 07:33
    andrew-gresyk closed #41
  • Nov 24 07:02
    andrew-gresyk synchronize #41
  • Nov 24 07:02

    andrew-gresyk on experimental

    hacking away 'warning C4103: al… (compare)

  • Nov 24 06:39
    andrew-gresyk opened #41
  • Nov 24 06:39

    andrew-gresyk on experimental

    1.1.0 * moved dev sources from … (compare)

  • Nov 23 21:32

    andrew-gresyk on master

    fixed discord badge and invite (compare)

  • Oct 28 05:41

    andrew-gresyk on experimental

    (compare)

  • Oct 28 05:41

    andrew-gresyk on master

    Enable Flawfinder static analys… (compare)

  • Oct 28 05:41
    andrew-gresyk closed #40
  • Oct 28 05:16
    andrew-gresyk opened #40
  • Oct 28 05:16

    andrew-gresyk on experimental

    Enable Flawfinder static analys… (compare)

  • Oct 27 22:31

    andrew-gresyk on experimental

    (compare)

  • Oct 27 22:31

    andrew-gresyk on master

    Enable MS static analysis (compare)

  • Oct 27 22:31
    andrew-gresyk closed #39
  • Oct 27 22:24
    andrew-gresyk opened #39
  • Oct 27 22:24

    andrew-gresyk on experimental

    Enable MS static analysis (compare)

  • Oct 27 22:17

    andrew-gresyk on experimental

    (compare)

DJuego
@DJuego
Hi!
I think a comparison table between HFSM2 and FFSM2 would be interesting. Or, at least, a description of when it is more suitable to use one or another solution (strengths and weaknesses of each).
Andrew Gresyk
@andrew-gresyk
Heya!
Yeah, 100%
BTW, there are no weaknesses! :p
The main difference is that HFSM2 is hierarchical, and FFSM2 is "flat", which is to say it doesn't have regions, only root and it's immediate sub-states
Hierarchy brings a lot of complexity, so not having to support it also reduces compile times and memory footprint, improves perf.
So long as your FSM doesn't need hierarchy - FFSM2 is the way to go.
If it does - HFSM2 still has your back!
DJuego
@DJuego
Thanks! This information in the documentation could be valuable for newcomers.
Andrew Gresyk
@andrew-gresyk
Indeed, that's on my TODO list
Alexis Paques
@AlexisTM
Hi @andrew-gresyk
I see you actually took my advice; Most people need the dead simple FSM, which was the reason we had to make our own library.
Great job!
Andrew Gresyk
@andrew-gresyk
Hey @AlexisTM
Yeah what you said made a lot of sense
Over time HFSM2 grew into a very powerful but also a bit heavy library
I addressed that in part with https://doc.hfsm.dev/user-guide/configuration/feature-macros
Trimming it down into a 'flat' FSM library was an obvious choice that would provide a lightweight FSM for simple uses, when HFSM2 can be an overkill
One design goal for FFSM2 was to make it easy to switch from HFSM2 to it, by changing hfsm2:: into ffsm2:: in the declarations
So far as the FSM itself is 'flat', in most cases it's possible to do just that, change the #include and the namespace and it should work, be a bit faster to compile, and have a slightly less of a memory footprint
Lastly, of course I listen to what my users say, why else would I ask them questions? :D