<commit_before>
# glossary.md

## core

As opposed to [unit](#unit). The basics of flor, everything that makes it a basic flor language interpreter. Core flor executions always execute in a single [run](#run). As soon as there is a [timer](#timer) or a [trap](#trap), something that would not be present in a vanilla interpreter, it goes into "unit".

The [storage](#storage) is not a "core" thing, it belongs to "unit". Core flor concepts are transient.

## domain

A domain is a dot separated list of names `[a-zA-Z0-9]+`.

An [execution](#execution) lives in a domain. An execution may only affect itself and other executions in the samed [domain branch](#domain_branch).

## domain branch

A domain and all its sub domains.

## execution
## executor
## hook
## loader
## message
## node
## payload
## procedure

## run

Each time an [executor](#executor) is instantiated to run one or more [messages](#message) for an [execution](#execution), the session is called an "execution run" or a "run" for short.

The lifecycle of an execution might comprise one or more runs. For example a simple execution containing only a `sleep` call will span two runs. The first run reaches the sleep and sets a [timer](#timer) for it, then when the timer triggers, an executor is instantiated and it performs the post-sleep, final run ending with a "terminated" message for the execution.

## scheduler
## storage
## task
## tasker
## timer
## trap

## unit

## variable
<commit_msg>Document glossary execution, exid and executor<commit_after>
# glossary.md

## core

As opposed to [unit](#unit). The basics of flor, everything that makes it a basic flor language interpreter. Core flor executions always execute in a single [run](#run). As soon as there is a [timer](#timer) or a [trap](#trap), something that would not be present in a vanilla interpreter, it goes into "unit".

The [storage](#storage) is not a "core" thing, it belongs to "unit". Core flor concepts are transient.

## domain

A domain is a dot separated list of names `[a-zA-Z0-9]+`.

An [execution](#execution) lives in a domain. An execution may only affect itself and other executions in the samed [domain branch](#domain_branch).

## domain branch

A domain and all its sub domains.

## execution

An execution is a live instance of a process or workflow (depending on your point of view). It's flagged with an [execution id](#exid) or [exid](#exid) for short.

## executor

When it receives a launch message (calling for a new [execution](#execution)) or a message for a currently sleeping execution, the [scheduler](#scheduler) will create an executor and hand it the messages for the execution.

An executor will stop working when there are no more messages for the execution (did it just terminate?) or if a certain number of messages has been processed (without this limit, an execution might monopolize heavily the resources available to the scheduler, well at least that's the reasoning behind the design decision).

If there is already an executor processing messages for the execution, the scheduler will not create a new one, it will simply queue the message for the executor to pick it up, sooner or later.

## exid

A unique identifier for a flor [execution](#execution), for example "test-u-20161204.2144.kawajabachu".

Its format is "{fully.qualified.domain}-{unitname}-{yyyymmdd.hhmm.mnemo}".

## hook
## loader
## message
## node
## payload
## procedure

## run

Each time an [executor](#executor) is instantiated to run one or more [messages](#message) for an [execution](#execution), the session is called an "execution run" or a "run" for short.

The lifecycle of an execution might comprise one or more runs. For example a simple execution containing only a `sleep` call will span two runs. The first run reaches the sleep and sets a [timer](#timer) for it, then when the timer triggers, an executor is instantiated and it performs the post-sleep, final run ending with a "terminated" message for the execution.

## scheduler
## storage
## task
## tasker
## timer
## trap
## unit
## variable

{'fraction_non_alphanumeric': 0.08912349619445127, 'fraction_numerical': 0.003928308372207218, 'mean_word_length': 4.573187414500684, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3775911', 'n_tokens_mistral': 1154, 'n_tokens_neox': 1064, 'n_words': 595}