Skip to content

Define PFFTT for use in running Technique documents#9

Open
istathar wants to merge 5 commits into
technique-lang:mainfrom
istathar:define-pfft
Open

Define PFFTT for use in running Technique documents#9
istathar wants to merge 5 commits into
technique-lang:mainfrom
istathar:define-pfft

Conversation

@istathar
Copy link
Copy Markdown
Member

We define the Procedure interchange Format For Transferring Techniques, PFFTT, done in the same modified BNF style as the one for the Technique language.

@istathar istathar self-assigned this May 20, 2026
@istathar istathar changed the title Define pfft Define PFFTT for use in running Technique documents May 20, 2026
@istathar
Copy link
Copy Markdown
Member Author

The working example used while formalizing this description was:

2026-05-16T12:50:30Z 015003 / Start file:///home/andrew/src/technique-lang/technique/examples/prototype/NetworkProbe.tq
2026-05-16T12:50:32Z 015003 /local_network:1 Begin
2026-05-16T12:50:42Z 015003 /local_network:1 Execute exec()
2026-05-16T12:50:48Z 015003 /local_network:1 Done ()
2026-05-17T00:28:25Z 015003 / Resume
2026-05-17T00:28:26Z 015003 /local_network:2 Begin
2026-05-17T00:28:30Z 015003 /local_network:2 Skip
2026-05-17T00:28:32Z 015003 /local_network:3 Begin
2026-05-17T00:29:15Z 015003 /local_network:3 Done [ address = "192.168.1.1", latency = 355 ms ]
2026-05-17T00:29:20Z 015003 /local_network:4 Begin
2026-05-17T00:30:00Z 015003 /local_network:4 Done ()
2026-05-17T00:30:05Z 015003 /local_network:5 Begin
2026-05-17T00:31:30Z 015003 /local_network:5 Invoke probe_border_router:
2026-05-17T00:31:31Z 015003 /probe_border_router:1 Begin
2026-05-17T00:32:01Z 015003 /probe_border_router:1 Done ()
2026-05-17T00:32:02Z 015003 /probe_border_router:2/a/-1 Begin
2026-05-17T00:32:05Z 015003 /probe_border_router:2/a/-1 Done ()

istathar added a commit to technique-lang/technique that referenced this pull request May 26, 2026
Refactor the state store used by the _run_ and _resume_ commands to use
the revised PFFTT format as formalized in

- technique-lang/specification#9

The format changes from being a tablet-esque line to being a more
refined text line. This allows the payload at the end for the `Done`
state to be a Technique value, up to and especially including being a
tablet, without needing additional encoding, escaping, or wrapping.

The record lines now include the RunId on each line. The `Start` state
line replaces the manifest, fully qualified paths are now rooted at `/`
(allowing both full http:// URLs and file:/// URLs to be used
interchangeably), and the time steps are started is recorded with the
`Begin` state.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant