Neva is a programming language where instead of writing step-by-step instructions, you create networks where data flows between nodes as immutable messages, with everything running in parallel. After type-checking, your program is compiled into machine code and can be distributed as a single executable with zero dependencies.
It excels at stream processing and concurrency while remaining simple and enjoyable for general development. Future updates will add visual programming and Go interop to enable gradual adoption.
What's Changed?
- Fixed deadlock caused caused by bug in desugarer (unhandled case of using anonymous port
node -> ...
with?
error-guard operator - when callinggetFirstOutportName
to getnode:port
sometimes we got:err
which must've been skipped because of?
) - New cli flag
--emit-ir
added forneva run
command, that allows to emit IR in yaml while running the program to get the exact same IR that is actually executed (implementation and API needs to be refactored in the future)- E2E Test added
- Fixed marshalling to JSON (and YAML added) of IR (related to #883) by adding missing method
- Added marshalling to YAML of IR
- Go updated to
1.24
golangci-lint
updated to 1.64 (still no support for Go 1.24?)- Minor refactor in desugarer - part of functionality moved from
src.Scope
(with fixes)
Important
This is an ambitious project maintained by a small group of enthusiasts. Your support by joining us will show interest and motivate us to continue.
Also, please give us a star ⭐️ to increase our chances of getting into GitHub's trending repositories and tell your friends about the project. The more attention Nevalang gets, the higher our chances of actually making a difference!