v0.16.0
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