Version 0.2.1 of package Fsm has just been released in GNU ELPA. You can now find it in M-x list-packages RET.
Fsm describes itself as: ===================== State machine library ===================== More at https://elpa.gnu.org/packages/fsm.html ## Summary: fsm.el is an exercise in metaprogramming inspired by gen_fsm of Erlang/OTP. It aims to make asynchronous programming in Emacs Lisp easy and fun. By "asynchronous" I mean that long-lasting tasks don't interfere with normal editing. Some people say that it would be nice if Emacs Lisp had threads and/or continuations. They are probably right, but there are few things that can't be made to run in the background using facilities already available: timers, filters and sentinels. As the code can become a bit messy when using such means, with callbacks everywhere and such things, it can be useful to structure the program as a state machine. ## Recent NEWS: Version 0.2: -- Delete trailing whitespace. -- Fix formatting. -- Use lexical binding. -- Port to cl-lib. -- Remove unnecessary fsm-debug-output message. -- Add FSM name to fsm-debug-output messages that were not including it. -- Fix checkdoc errors. -- Change FSMs from plists to uninterned symbols. NOTE: This is version 0.1ttn4 of fsm.el, with the following mods (an exercise in meta-meta-programming ;-) by ttn: -- Refill for easy (traditional 80-column) perusal. -- New var `fsm-debug-timestamp-format'. -- Make variables satisfy `user-variable-p'. -- Use `format' instead of `concat'. -- New func `fsm-goodbye-cruel-world'. -- Make start-function respect `interactive' spec. -- Make enter-/event-functions anonymous. -- New macro `define-fsm'. -- Example usage in Commentary.
