Skip to content

v0.16.0

Compare
Choose a tag to compare
@emil14 emil14 released this 07 Apr 18:44
· 475 commits to main since this release
19a19c7

What's Changed

  • New graphviz backend by @Catya3 in #540
  • New chained connection syntax sugar and massive renaming in stdlib by @emil14 in #533

On new syntax sugar

You can now chain connections where inport and outport has the same name. E.g. instead of

a:b -> c:d
c:d -> e:f

You can now just write

a:b -> c:d -> e:f

It's also possible to chain as many as you want

a:b -> c:d -> e:f -> g:h ...

On renaming in standard library

Basically I decided to use shorter names and ditch "er" endings, use function-like (verbs) names instead:

  • Emitter -> New
  • Destructor -> Del
  • Blocker -> Lock
  • StructBuilder -> Struct
  • StructSelector -> Field
  • Adder -> Add
  • Subtractor -> Sub
  • Multiplier -> Mul
  • Decrementor -> Decr
  • Printer -> Println
  • Fprinter -> Printf
  • PortStreamer -> PortSequencer
  • ISeqHandler -> ISeqReducer
  • PortBridge -> PortReducer
  • regexp.Submatcher -> regexp.Submatch
  • x.NumParser -> x.ParseNum
  • x.LineScanner -> x.Scanln

On Match and Mod

These two implement the same pattern, they had case array-inport and then array-outport. The outport is now also case. The reason is new "chained" syntax. Now we have a reason to name outport like inport where it's convenient.

Stream vs Sequence

Some components emit sequences of messages separated by delimiters, maybe type is used for that. The term used for that was "stream" and the thing is - it's a bad name for that. Classic FBP defines "stream" as messages that flows through connection. So streams are everywhere. The right word for that is "sequence". So stream ports were renamed to seq and word "sequence" must be used insted.

BTW the word for what is list and map is "collection". E.g. you can now find collections.neva file in stdlib module.

Handlers vs Reducers

The word for "component that takes sequence of type T and produce one value of that type T" is now reducer, now handler. Also PortBridge was renamed to PortReducer because of that. Handler was too vague term. Reducer is what is exactly is.


Full Changelog: v0.15.0...v0.16.0