Skip to content

Releases: nevalang/neva

v0.16.0

07 Apr 18:44
19a19c7
Compare
Choose a tag to compare

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

v0.15.0

06 Apr 17:55
31224ae
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.14.0...v0.15.0

v0.14.0

21 Mar 19:41
a7a5925
Compare
Choose a tag to compare

What's Changed

This release adds new syntax sugar:

Multiple senders syntax

Instead of

$x -> foo:bar
$y -> foo:bar

You can now write

[$x, $y] -> foo:bar

Same goes for normal senders with outports.

Components without net keyword

If component has network but doesn't have nodes, you can omit net keyword.

Before:

component Main(start) (stop) {
  net { :start -> :stop }
}

After:

component Main(start) (stop) {
  :start -> :stop
}

One-liners are also supported: component Main(start) (stop) { :start -> :stop }

One-line nodes section

Now you can instead of defining each component's node on separate line, define them in one line separating them with comma. Old syntax is supported (e.g. for components with big amount nodes).

Before:

component Foo(a) (b) {
  nodes {
    Bar
    Baz
    Bax
  }
  net {
    // ...
  }
}

After:

component Foo(a) (b) {
  nodes { Bar, Baz, Bax }
  net {
    // ...
  }
}

Related:


Full Changelog: v0.13.0...v0.14.0

v0.13.0

21 Mar 13:40
595df50
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.12.0...v0.13.0

v0.12.0

16 Mar 11:39
5de204b
Compare
Choose a tag to compare

What's Changed

  • 99 bottles example by @emil14 in #508
  • New Match component
  • Eq component removed - we don't need it (yet) in current examples
  • Multiple bug-fixes

Full Changelog: v0.11.1...v0.12.0

v0.11.1

13 Mar 20:10
3d0bca6
Compare
Choose a tag to compare

What's Changed

  • fix(parser): add support for comments inside components by @emil14 in #521
  • fix version

Full Changelog: v0.11.0...v0.11.1

v0.11.0

13 Mar 13:00
162d058
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.10.5...v0.11.0

v0.10.5

13 Mar 11:32
643486f
Compare
Choose a tag to compare

What's Changed

  • New stdlib math methods by @dorian3343 in #509
  • feat: add e2e test for subtractor by @emil14 in #513
  • fix(parser): negative numbers don't cause panic and minus is respected by @emil14 in #518

Full Changelog: v0.10.4...v0.10.5

v0.10.4

11 Mar 20:15
596802d
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.10.3...v0.10.4

v0.10.3

09 Mar 08:49
faaf389
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.10.2...v0.10.3