This Month in Mun - August 2020

August 30, 2020, The Mun Team

This month brings some big community and core team updates, paving the way for the release of all Mun crates - including the compiler - to crates.io.

Community

We welcomed a new community contributor, who immediately took on a big good first issue:

Thank you for your contributions, and welcome to the Mun community!

If you are also interested in helping develop Mun - but are not sure where to start - feel free to reach out to us on Discord or Twitter. To support our cause, please consider donating to our Open Collective or Github Sponsors.

Mun v0.3 progress

This month we mainly focused on some big refactors that improved ergonomics and will allow us to add runtime type dependencies - a core component for project management.

  • improvement: shared diagnostics between compiler and language server [PR#239]

  • refactor: generate C ABI from Rust code [PR#255] [PR#8] [PR#8]

    An ergonomic improvement that allows us to use Rust’s algebraic data types (or ADTs), while remaining C ABI compatible.

  • refactor: move library loading logic to separate crate [PR#252]

  • refactor: move test utility functions to separate crate [PR#253]

  • refactor: upgrade to official inkwell [PR#254]

    Thanks to this refactor we were able to move to an official release of inkwell, allowing us to release the Mun v0.3 compiler crates on crates.io in the future.

    For now, we are still stuck on LLVM 8, due to a bug in the LLD linker - that was introduced in later versions. We’ve created a fix that has been merged, so we should be able to upgrade to future releases of LLVM again.

Having finished project configuration last month and runtime type dependencies well underway, we’ll be focussing on compiler support for use statements and accessibility specifiers next.

It’s been over three months since we started work on Mun v0.3. Whereas it took us six months to release Mun v0.2, our goal is to shorten our development cycle to 3-4 months, going forward. As such, we’ve moved several “nice to have” issues to the next tock release - Mun v0.5 - to make sure that we can release Mun v0.3 in about a month.

For more details, please check out our high-level roadmap on Github that details new features for the upcoming three releases - Mun v0.3, v0.4, and v0.5 - as well as a backlog of features that are still to come.