flowc

Crates.ioflowc
lib.rsflowc
version0.142.0
sourcesrc
created_at2018-01-29 21:21:36.181883
updated_at2023-09-28 17:34:57.897984
descriptionA compiler for 'flow' programs
homepagehttp://andrewdavidmackenzie.github.io/flow/
repositoryhttps://github.com/andrewdavidmackenzie/flow/
max_upload_size
id48833
size249,811
Andrew Mackenzie (andrewdavidmackenzie)

documentation

https://github.com/andrewdavidmackenzie/flow/README.md

README

flowc

flowc is the "compiler and linker" for flows and flow libraries, although it is not very similar to what you might be familiar with as a compiler or linker.

It is part of the overall flow project (README.md).

It loads flow definition files, and builds the flow hierarchy reading from referenced flows/functions and library references, and builds the flow in memory.

Then it connects all functions via data flows through the hierarchy and removes most of the flow structure leaving a "network of functions" which it then optimizes (removing unused functions and connections).

It checks that types match and required connections exist.

It also checks for some illegal or cases that would prove problematic at runtime (specific types of "loops" or contention for a connection)

Lastly it generates a manifest describing the flow, which can be executed by flowr.

It then may (depending on the command line options used) invoke flowr (using cargo to ensure it is up to date and built).

It is structured as a library with a thin CLI wrapper around it that offers command line arguments and then uses the library to compile and optionally run the compiled flow.

flowrclib

This library contains most of the compilation and linking logic for flowc.

features

These are the conditionally compiled features of the flowc crate:

  • default - The "debugger" feature is enabled by default
  • debugger - feature to add the debugger
Commit count: 4366

cargo fmt