Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jun 12 21:10
    MarcoSpeziali closed #49
  • Jun 12 21:10
    MarcoSpeziali commented #49
  • Jun 12 21:01
    andrew-gresyk commented #49
  • Jun 12 20:59

    andrew-gresyk on 2.0.3

    (compare)

  • Jun 12 20:58

    andrew-gresyk on experimental

    (compare)

  • Jun 12 20:58

    andrew-gresyk on master

    2.0.3 (#50) - removed `FFSM2_A… (compare)

  • Jun 12 20:58
    andrew-gresyk closed #50
  • Jun 12 20:52
    andrew-gresyk opened #50
  • Jun 12 20:52

    andrew-gresyk on experimental

    2.0.3 - removed `FFSM2_ARCHITE… (compare)

  • Jun 12 10:57
    MarcoSpeziali opened #49
  • Jun 01 22:03

    andrew-gresyk on 2.0.2

    (compare)

  • Jun 01 22:02

    andrew-gresyk on experimental

    (compare)

  • Jun 01 22:02

    andrew-gresyk on master

    2.0.2 enabled `-Wshadow` and `… (compare)

  • Jun 01 22:02
    andrew-gresyk closed #48
  • Jun 01 07:53
    andrew-gresyk synchronize #48
  • Jun 01 07:53

    andrew-gresyk on experimental

    more shadows (compare)

  • Jun 01 07:49
    andrew-gresyk synchronize #48
  • Jun 01 07:49

    andrew-gresyk on experimental

    ^ more GCC warnings (compare)

  • Jun 01 07:42
    andrew-gresyk synchronize #48
  • Jun 01 07:42

    andrew-gresyk on experimental

    fixed GCC warnings (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
DJuego
@DJuego
Congratulations and thank you for FFSM2 version 2.0.0, @andrew-gresyk !!
Do you plan to incorporate some of these new features in HFSM2 (when possible)?
Andrew Gresyk
@andrew-gresyk
Thanks @DJuego
Yes, HFSM2 update is coming soon, with more features ;)
DJuego
@DJuego
Great!!