Skip to content

Releases: vrtbl/passerine

Passerine 0.9.3 Release

21 Oct 16:49
Compare
Choose a tag to compare

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:

  • Add a simple CLI frontend for experimentation during compiler development. (@Plecra)
  • Rewrote a number of sections of the README for correctness and clarity.
  • Removed closure stamping for better Wasm compatibility.
  • Updated the logo for Passerine.
  • Simplified pointer encoding API for better safety. (@Plecra)
  • Reference count some internal compiler objects for better performance.
  • Add a few functions to the default Foreign Function Interface.
  • Add the power ** operator. (@ShawSumma)
  • Wrote some additional tests to improve coverage.
  • A few formatting / clippy fixes. (@Kethku)
  • Plan and document a module system. (@mathis2003)
  • Document how to support the project.

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)

Passerine 0.9.2 Release

02 Apr 11:33
Compare
Choose a tag to compare

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!

Passerine 0.9.1 Release

30 Mar 04:53
Compare
Choose a tag to compare

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!