Skip to content

Commit

Permalink
more attempts to tie repos together
Browse files Browse the repository at this point in the history
  • Loading branch information
StoneCypher committed Jun 8, 2022
1 parent 512332c commit 9bb5cd8
Show file tree
Hide file tree
Showing 15 changed files with 196 additions and 69 deletions.
17 changes: 16 additions & 1 deletion CHANGELOG.long.md
Expand Up @@ -2,7 +2,7 @@

All notable changes to this project will be documented in this file.

897 merges; 78 releases
898 merges; 78 releases



Expand All @@ -18,6 +18,21 @@ Published tags:



 

 

## [Untagged] - 6/7/2022 10:49:31 PM

Commit [512332c813e25ff2c4f5fe21181a0a62743002b2](https://github.com/StoneCypher/jssm/commit/512332c813e25ff2c4f5fe21181a0a62743002b2)

Author: `John Haugeland <stonecypher@gmail.com>`

* Another attempt at tying repos together




&nbsp;

&nbsp;
Expand Down
32 changes: 16 additions & 16 deletions CHANGELOG.md
Expand Up @@ -2,7 +2,7 @@

All notable changes to this project will be documented in this file.

897 merges; 78 releases; Changlogging the last 10 commits; Full changelog at [CHANGELOG.long.md](CHANGELOG.long.md)
898 merges; 78 releases; Changlogging the last 10 commits; Full changelog at [CHANGELOG.long.md](CHANGELOG.long.md)



Expand All @@ -18,6 +18,21 @@ Published tags:



&nbsp;

&nbsp;

## [Untagged] - 6/7/2022 10:49:31 PM

Commit [512332c813e25ff2c4f5fe21181a0a62743002b2](https://github.com/StoneCypher/jssm/commit/512332c813e25ff2c4f5fe21181a0a62743002b2)

Author: `John Haugeland <stonecypher@gmail.com>`

* Another attempt at tying repos together




&nbsp;

&nbsp;
Expand Down Expand Up @@ -166,19 +181,4 @@ Author: `John Haugeland <stonecypher@gmail.com>`
Merges [ea3e310, 5950672]

* Merge pull request #495 from StoneCypher/ExportFieldsForCdnPkg
* export fields in package.json




&nbsp;

&nbsp;

## [Untagged] - 6/6/2022 10:26:13 PM

Commit [5950672faaa4406176b19936974626cc7367f41f](https://github.com/StoneCypher/jssm/commit/5950672faaa4406176b19936974626cc7367f41f)

Author: `John Haugeland <stonecypher@gmail.com>`

* export fields in package.json
2 changes: 1 addition & 1 deletion dist/es6/version.js
@@ -1,2 +1,2 @@
const version = "5.70.0";
const version = "5.70.1";
export { version };
2 changes: 1 addition & 1 deletion dist/jssm.es5.cjs.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/jssm.es5.cjs.nonmin.js
Expand Up @@ -16783,7 +16783,7 @@ function peg$parse(input, options) {
}
}

const version = "5.70.0";
const version = "5.70.1";

class JssmError extends Error {
constructor(machine, message, JEEI) {
Expand Down
2 changes: 1 addition & 1 deletion dist/jssm.es5.iife.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/jssm.es5.iife.nonmin.js
Expand Up @@ -16782,7 +16782,7 @@ var jssm = (function (exports) {
}
}

const version = "5.70.0";
const version = "5.70.1";

class JssmError extends Error {
constructor(machine, message, JEEI) {
Expand Down
32 changes: 16 additions & 16 deletions docs/docs/classes/Machine.html

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions docs/docs/modules.html

Large diffs are not rendered by default.

13 changes: 12 additions & 1 deletion docs/docs/pages/CHANGELOG.long.html
Expand Up @@ -3,14 +3,25 @@
<h1>Changelog</h1>
</a>
<p>All notable changes to this project will be documented in this file.</p>
<p>897 merges; 78 releases</p>
<p>898 merges; 78 releases</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Published tags:</p>
<p><a href="#5__69__4">5.69.4</a>, <a href="#5__69__3">5.69.3</a>, <a href="#5__69__2">5.69.2</a>, <a href="#5__69__0">5.69.0</a>, <a href="#5__68__0">5.68.0</a>, <a href="#5__67__2">5.67.2</a>, <a href="#5__67__0">5.67.0</a>, <a href="#5__66__0">5.66.0</a>, <a href="#5__65__14">5.65.14</a>, <a href="#5__65__12">5.65.12</a>, <a href="#5__65__11">5.65.11</a>, <a href="#5__65__10">5.65.10</a>, <a href="#5__65__9">5.65.9</a>, <a href="#5__65__8">5.65.8</a>, <a href="#5__65__7">5.65.7</a>, <a href="#5__65__5">5.65.5</a>, <a href="#5__65__4">5.65.4</a>, <a href="#5__65__3">5.65.3</a>, <a href="#5__65__2">5.65.2</a>, <a href="#5__65__1">5.65.1</a>, <a href="#5__65__0">5.65.0</a>, <a href="#5__64__2">5.64.2</a>, <a href="#5__64__1">5.64.1</a>, <a href="#5__64__0">5.64.0</a>, <a href="#5__63__0">5.63.0</a>, <a href="#5__62__0">5.62.0</a>, <a href="#5__61__4">5.61.4</a>, <a href="#5__61__3">5.61.3</a>, <a href="#5__61__2">5.61.2</a>, <a href="#5__61__1">5.61.1</a>, <a href="#5__60__4">5.60.4</a>, <a href="#5__60__3">5.60.3</a>, <a href="#5__60__0">5.60.0</a>, <a href="#5__59__1">5.59.1</a>, <a href="#5__59__0">5.59.0</a>, <a href="#5__58__1">5.58.1</a>, <a href="#5__58__0">5.58.0</a>, <a href="#5__57__1">5.57.1</a>, <a href="#5__57__0">5.57.0</a>, <a href="#5__56__2">5.56.2</a>, <a href="#5__56__1">5.56.1</a>, <a href="#5__55__0">5.55.0</a>, <a href="#5__54__0">5.54.0</a>, <a href="#5__53__0">5.53.0</a>, <a href="#5__52__0">5.52.0</a>, <a href="#5__51__0">5.51.0</a>, <a href="#5__50__0">5.50.0</a>, <a href="#5__49__0">5.49.0</a>, <a href="#5__48__0">5.48.0</a>, <a href="#5__47__0">5.47.0</a>, <a href="#5__46__0">5.46.0</a>, <a href="#5__45__2">5.45.2</a>, <a href="#5__45__0">5.45.0</a>, <a href="#5__44__0">5.44.0</a>, <a href="#5__43__2">5.43.2</a>, <a href="#v5__42__0">v5.42.0</a>, <a href="#5__42__0">5.42.0</a>, <a href="#v5__41__15">v5.41.15</a>, <a href="#5__41__15">5.41.15</a>, <a href="#v5__41__14">v5.41.14</a>, <a href="#5__41__14">5.41.14</a>, <a href="#v5__41__12">v5.41.12</a>, <a href="#5__41__12">5.41.12</a>, <a href="#v5__41__10">v5.41.10</a>, <a href="#5__41__10">5.41.10</a>, <a href="#v5__41__9">v5.41.9</a>, <a href="#5__41__9">5.41.9</a>, <a href="#v5__41__8">v5.41.8</a>, <a href="#5__41__8">5.41.8</a>, <a href="#v5__41__7">v5.41.7</a>, <a href="#v5__41__2">v5.41.2</a>, <a href="#v5__41__1">v5.41.1</a>, <a href="#v5__32__14">v5.32.14</a>, <a href="#5__14__0">5.14.0</a>, <a href="#5__12__0">5.12.0</a>, <a href="#5__11__12">5.11.12</a>, <a href="#5__11__1">5.11.1</a>, <a href="#5__11__0">5.11.0</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>

<a href="#untagged---672022-104931-pm" id="untagged---672022-104931-pm" style="color: inherit; text-decoration: none;">
<h2>[Untagged] - 6/7/2022 10:49:31 PM</h2>
</a>
<p>Commit <a href="https://github.com/StoneCypher/jssm/commit/512332c813e25ff2c4f5fe21181a0a62743002b2">512332c813e25ff2c4f5fe21181a0a62743002b2</a></p>
<p>Author: <code>John Haugeland &lt;stonecypher@gmail.com&gt;</code></p>
<ul>
<li>Another attempt at tying repos together</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>

<a href="#untagged---672022-104017-pm" id="untagged---672022-104017-pm" style="color: inherit; text-decoration: none;">
<h2>[Untagged] - 6/7/2022 10:40:17 PM</h2>
</a>
Expand Down
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "jssm",
"version": "5.70.0",
"version": "5.70.1",
"engines": {
"node": ">=10.0.0"
},
Expand Down
17 changes: 16 additions & 1 deletion src/doc_md/CHANGELOG.long.md
Expand Up @@ -2,7 +2,7 @@

All notable changes to this project will be documented in this file.

897 merges; 78 releases
898 merges; 78 releases



Expand All @@ -18,6 +18,21 @@ Published tags:



&nbsp;

&nbsp;

## [Untagged] - 6/7/2022 10:49:31 PM

Commit [512332c813e25ff2c4f5fe21181a0a62743002b2](https://github.com/StoneCypher/jssm/commit/512332c813e25ff2c4f5fe21181a0a62743002b2)

Author: `John Haugeland <stonecypher@gmail.com>`

* Another attempt at tying repos together




&nbsp;

&nbsp;
Expand Down
32 changes: 16 additions & 16 deletions src/doc_md/CHANGELOG.md
Expand Up @@ -2,7 +2,7 @@

All notable changes to this project will be documented in this file.

897 merges; 78 releases; Changlogging the last 10 commits; Full changelog at [CHANGELOG.long.md](CHANGELOG.long.md)
898 merges; 78 releases; Changlogging the last 10 commits; Full changelog at [CHANGELOG.long.md](CHANGELOG.long.md)



Expand All @@ -18,6 +18,21 @@ Published tags:



&nbsp;

&nbsp;

## [Untagged] - 6/7/2022 10:49:31 PM

Commit [512332c813e25ff2c4f5fe21181a0a62743002b2](https://github.com/StoneCypher/jssm/commit/512332c813e25ff2c4f5fe21181a0a62743002b2)

Author: `John Haugeland <stonecypher@gmail.com>`

* Another attempt at tying repos together




&nbsp;

&nbsp;
Expand Down Expand Up @@ -166,19 +181,4 @@ Author: `John Haugeland <stonecypher@gmail.com>`
Merges [ea3e310, 5950672]

* Merge pull request #495 from StoneCypher/ExportFieldsForCdnPkg
* export fields in package.json




&nbsp;

&nbsp;

## [Untagged] - 6/6/2022 10:26:13 PM

Commit [5950672faaa4406176b19936974626cc7367f41f](https://github.com/StoneCypher/jssm/commit/5950672faaa4406176b19936974626cc7367f41f)

Author: `John Haugeland <stonecypher@gmail.com>`

* export fields in package.json
86 changes: 86 additions & 0 deletions src/doc_md/LanguageReference.md
@@ -0,0 +1,86 @@
# Language Reference

This document is still underway.



&nbsp;

&nbsp;

## Quick start

A machine often looks like this:

```fsl
Red -> Green -> Yellow -> Red;
```

With actions:

```fsl
Red 'next' -> Green 'next' -> Yellow 'next' -> Red;
```

It's honestly actually that easy. Let's get into the details.

&nbsp;

&nbsp;



## Terminology

Finite state machines are a concept from the 1950s, and though they come from
English, many important devices originated in foreign languages, in math, or in
programming languages, often overlapping, so many terms have competing phrasings
in use. Let's start by nailing words down.

`FSL` generally has `state`s, `transition`s, `action`s, `data`, and `hook`s.
There are also a million small concepts, but, that's the meat of the matter, and
some subset of that is true of most state machines.

The idea with a finite state machine is simple - {if you're new to FSMs, maybe
read this tutorial first} - but in short, a finite state machine is in exactly
one `state` at any time, from amongst a concrete and permanent list of `state`s,
and there is a list of which `state`s are allowed `transition` to which others.
They may do so because you explicitly said to, or in response to an `action`.
In the process, some `data` being tracked might change (though usually not, it
turns out,) and as a result, some `hook`s might get called, which even might
prevent the change from happening.

Using a traffic light as an example, the four colors the light might be in are
the `state`s (red, yellow, green, and off;) the `action`s are `next color`,
`turn on`, and `turn off`; to `transition` is to switch to another color. If
your light does things when it switches, like yelling "red light" on switching
to red, it'll do those in `hooks`. (A traffic light doesn't need `data`.)

In the fashion of a type system or a constraint system, a finite state machine
is a way of giving the computer more context about what's going on, so that it
can refuse changes that aren't correct. This leads to improved debugging,
easier to understand software, safer execution, and a long list of subtle
benefits.

However, these machines tend to be quite verbose to express, especially if
they're written in language-standard datastructures, to the point that reading
and writing them becomes cumbersome. `FSL` and `jssm` exist to solve this.

`FSL` is a string-based domain-specific language for finite state machines.

`jssm` is a parser and executing machine for `FSL` language machines.

This document expresses the FSL language in its current state.

<aside>

### New users, old pros

If you're used to finite state machines but coming from another machine,

* `state`s are sometimes called `node`s or `mode`s;
* `transition`s are sometimes called `edge`s or `connection`s;
* `action`s are sometimes called `command`s or `event`s;
* `hook`s are sometimes called `output`s.

<aside>
2 changes: 1 addition & 1 deletion src/ts/version.ts
@@ -1,3 +1,3 @@

const version: string = "5.70.0";
const version: string = "5.70.1";
export { version };

0 comments on commit 9bb5cd8

Please sign in to comment.