a b c d e f g h i j k l m n o p q r s t u v w x y z
elpa-fsm
Source: fsm-el
Package: elpa-fsm
Versions: elpa-fsm (0.2.1-1), elpa-fsm (0.2.1-2), elpa-fsm (0.2.1-3), elpa-fsm (0.2.1-4), elpa-fsm (0.2.1-5)
Prioritize: 47
Description: state machine library
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 interfer 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.
.
In this model, a state machine passes between different "states",
which are actually only different event handler functions. The
state machine receives "events" (from timers, filters, user
requests, etc) and reacts to them, possibly entering another state,
possibly returning a value.
.
The essential macros/functions are:
;;
define-state-machine - create start-FOO function
define-state - event handler for each state (required)
define-enter-state - called when entering a state (optional)
define-fsm - encapsulates the above three (more sugar!)
fsm-send - send an event to a state machine
fsm-call - send an event and wait for reply
.
fsm.el is similar to but different from Distel:
<URL:http://fresh.homeunix.net/~luke/distel/>
Emacs' tq library is a similar idea.
This Description was in forky from 2025-08-10 to 2026-09-01;
This Description was in trixie from 2023-06-12 to 2026-07-13;
This Description was in bookworm from 2021-08-18 to 2026-07-13;
This Description was in bullseye from 2020-03-03 to 2024-09-02;
This Description was in sid from 2016-12-17 to 2026-09-01;
This Description was in stretch from 2016-12-28 to 2020-07-21;
This Description was in buster from 2017-07-28 to 2022-09-13;
This Description is not yet translated to ar
This Description is not yet translated to bg
This Description is not yet translated to ca
This Description is not yet translated to cs
This Description is translated to da
This Description is not yet translated to de
This Description is not yet translated to de_DE
This Description is not yet translated to el
This Description is not yet translated to eo
This Description is not yet translated to es
This Description is not yet translated to eu
This Description is not yet translated to fi
This Description is not yet translated to fr
This Description is not yet translated to gl
This Description is not yet translated to hr
This Description is not yet translated to hu
This Description is not yet translated to id
This Description is not yet translated to it
This Description is not yet translated to ja
This Description is not yet translated to km
This Description is not yet translated to ko
This Description is not yet translated to ml
This Description is not yet translated to nb
This Description is not yet translated to nl
This Description is not yet translated to pl
This Description is not yet translated to pt
This Description is not yet translated to pt_AO
This Description is not yet translated to pt_BR
This Description is not yet translated to ro
This Description is not yet translated to ru
This Description is not yet translated to sk
This Description is not yet translated to sr
This Description is not yet translated to sv
This Description is not yet translated to tr
This Description is not yet translated to uk
This Description is not yet translated to vi
This Description is not yet translated to zh
This Description is not yet translated to zh_CN
This Description is not yet translated to zh_TW
parts-md5sum:
4f35a89f5716f5994d2559b628850e4b da
3ee3a9a6799a47001de84ecfa0ada0e2 da
a4082a96a716127edde48015262a33a0 da
3712ee96824081fd493e068ccfc59bcc da
92cca1de0a16bd5643eb7a3c73bc3e7b da
ee75f520720c3116c270a14822cbdca0 da
other Descriptions of the elpa-fsm package: