A small extensible programming language designed for concise expression with little code.
MIT License
Bot releases are visible (Hide)
There are no major changes between this release and the previous 0.9.2
release. This is release just a patch version bump because of the release of Rust 2021. A number of bug fixes and improvements have been rolled up into this release:
**
operator. (@ShawSumma)Thank you everyone who has contributed to Passerine! If you'd like to play around with this early preview of the language, installation instructions are available on passerine.io. Most of the discussion around the language takes place on the community Discord server: feel free to swing by and say hello!
Special thanks to Keith Simmons (@Kethku) for graciously offering to support my work on the Passerine via Patreon. :D
— Isaac Clayton (@slightknack)
Published by slightknack over 3 years ago
Hey y'all! This is a fairly big release; I would make it a new minor version, but we've reserving 0.10 for a type-checker. This version adds support for variable hoisting, i.e. being able to reference other functions defined later from within a function without forward declarations:
-- before, we had to forward declare
loop = ()
loop = x -> loop x
-- now, this is automatic:
loop = x -> loop x
-- same thing for mutually recursive functions:
even = x -> odd x
odd = x -> even x
As always, we've included some nice error messages and such for when things go wrong. The semantics are pretty straightforward, and the implementation fairly efficient, so this doesn't require much overhead.
As an aside, this change also does variable renaming - it replaces each unique variable with a unique identifier; different variables with the same name will have a different unique identifier. This representation opens the gates for type-checking, which requires that symbols be consistently named.
Have a nice day!
Published by slightknack over 3 years ago
This release is the first patch of the 0.9 version of Passerine. Most notable, compared to 0.9.0, this release adds support for integers and a remainder operator (thanks @nivpgir!).
We've also included a github action to automatically build binaries for releases; we haven't really tested it yet, so we'll see whether it works as intended. 🤞
Update: Looks like the automatic release action didn't work. 😔 We'll update it before the next release.
Have a nice day!