Skip to content

Mun v0.2.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@Wodann Wodann released this 16 May 18:10

The second Mun release includes big new features such as hot reloading support for data structures, garbage collection, and full operator and literal support for fundamental types.

πŸ”— feature

  • Incremental compilation when hot reloading

πŸ”— docs

  • Install instructions in README

πŸ”— refactor

  • Use codecov.io instead of coveralls

πŸ”— feature

  • loop expression

πŸ”— misc

  • Changed crate authors

πŸ”— feature

  • break expression

πŸ”— feature

  • while expression

πŸ”— feature

  • struct declarations
  • struct literals
  • ABI support for struct types

πŸ”— docs

  • LLVM install instructions for Arch Linux in README

πŸ”— refactor

  • Optimised CStr::from_ptr(ptr).to_str() to from_utf8_unchecked in ABI

πŸ”— test

  • Test UTF-8 validity of compiler-generated CStr

πŸ”— feature

  • Tools for manual generation of ABI & runtime CAPI bindings

πŸ”— feature

  • Simple binary operation type checking

πŸ”— docs

  • License, homepage, and repository information in README

πŸ”— feature

  • Compiled libraries use munlib extension

πŸ”— feature

  • Improved error messages for missing function signatures

πŸ”— feature

  • Marshalling of struct types

πŸ”— refactor

  • MunStructInfo is appended to MunTypeInfo for struct types

πŸ”— test

  • Unit test for LineIndex::line_str function

πŸ”— feature

  • Marshalling of fields with the struct type

πŸ”— feature

  • Updated Runtime CAPI
  • Unit tests for Runtime CAPI

πŸ”— feature

  • Support for extern functions in the dispatch table

πŸ”— feature

πŸ”— feature

  • Restrict symbol generation to pub functions

πŸ”— feature

  • Marshalling of struct(value) types

πŸ”— feature

  • extern functions

πŸ”— feature

  • Heap-allocated object management using pointer indirection

πŸ”— feature

  • Size and alignment of types in ABI

πŸ”— feature

  • Garbage collection using mark & sweep

πŸ”— misc

  • Code coverage using tarpaulin instead of grcov

πŸ”— test

  • Test for incremental compilation

πŸ”— misc

πŸ”— feature

  • Performance benchmarks

πŸ”— improvement

πŸ”— refactor

  • Retrieve TypeInfo and StructInfo during calls in a StructRef

πŸ”— misc

πŸ”— docs

  • Updated Arch Linux install instructions in README

πŸ”— refactor

  • struct memory mapping

πŸ”— improvement

  • Typed literals
  • Hex, binary, and octal literals
  • Allow underscores in numeric literals

πŸ”— refactor

  • Use -> instead of : for function return types

πŸ”— feature

  • i128 and u128 integer types

πŸ”— misc

πŸ”— feature

  • Runtime support for extern functions without return type

πŸ”— misc

  • Merged file_ir and group_ir snapshots

πŸ”— style

  • Missing space in invoke_fn15 function

πŸ”— feature

  • % and %= operators

πŸ”— feature

  • Unary ! and - operators

πŸ”— feature

  • Cast fundamental types during struct memory mapping

πŸ”— chore

  • Split artifact generation and CI tests

πŸ”— refactor

  • Simplified MemoryMapper API
  • Clarified usage of unsafe code

πŸ”— feature

  • StructRef can be cloned

πŸ”— feature

  • bool assignment (=) operator
  • struct assignment (=) operator
  • bool and (&&), or (||) operators
  • bitwise and (& and &=), or (| and |=), xor (^ and ^=) operators
  • left-shift (<< and <<=), right-shift (>> and >>=) operators

πŸ”— improvement

  • Return Rc<RefCell<Runtime>> from RuntimeBuilder

πŸ”— feature

  • Number type inferencing

πŸ”— misc

  • Removed float, uint, and int types

πŸ”— misc

  • Updated code sample in README

πŸ”— misc

  • Updated badges in README

πŸ”— feature

  • Garbage collection methods in Runtime CAPI

πŸ”— test

  • Test for type conversion during memory mapping

πŸ”— refactor

  • Split FunctionInfo into signature, prototype, and definition

πŸ”— feature

  • Support for adding extern functions in Runtime CAPI

πŸ”— misc

  • Removed old snapshots

πŸ”— feature

  • Map fields with different struct memory kinds during memory mapping
  • Zero initialise fields with different struct types during memory mapping

πŸ”— misc

  • Buoyancy example

πŸ”— misc

  • Log upon assembly reload

πŸ”— misc

  • Cloning instructions in README

πŸ”— misc

  • Updated code sample in README

πŸ”— feature

  • Mun book in main repository

πŸ”— misc

  • crates.io publishing metadata

πŸ”— misc

  • Updated binaries for Runtime C API

In addition, there were a lot of bug fixes.

Special thanks to @legendiguess and @jakbyte for their contributions to this release.