Skip to content

Latest commit

 

History

History
319 lines (266 loc) · 19.5 KB

CHANGELOG.md

File metadata and controls

319 lines (266 loc) · 19.5 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

Changed

Fixed

[0.5.0] - 2023-12-28

Added

  • Suggestions if an invoked function cannot be found #524
  • Script for running and collecting Miri logs #537
  • Tests for multi-file hot reloading #522

Changed

  • Bump LLVM from 13 to 14 #495
  • Use detailed error enums instead of anyhow in libraries #521
  • Bump Inkwell to 0.2.0 #529
  • Bump Rust to 1.73 #515 #541

Fixed

  • Invalid output module path in ABI #520
  • Missing polly static library #523
  • Missing validators in diagnostics tests #527
  • Detect and report cyclic type aliases and leaked privacy #528
  • Failing test_function_release_strong_count test #535

[0.4.0] - 2022-12-12

Added

  • Clone trait implementation to RootedStruct #323
  • Private function leak validation #338
  • Dynamically-sized arrays #341
  • Private struct type leak validation #344
  • Mun logo #355
  • Send trait implementation to Mun Runtime #370
  • Use static-crt on Windows #376
  • Link type information when loading Mun library #377
  • Indirect types to Mun ABI #415
  • Type API to mitigate cyclic type references #427
  • Mac M1 Support #444
  • Bevy example #475

Changed

  • Bump Rust from 1.50.0 to 1.65.0 #325 #327 #334 #346 #350 #357 #360 #369 #378 #406 #432 #474 #477
  • Simplified invoke syntax #347
  • Bump LLVM from 11 to 13 #351 #491
  • Move Mun runtime FFI submodule to monorepo #352
  • Bump Rust to 2021 edition #367
  • Move Mun ABI submodule to monorepo #404
  • Performance optimisations #405
  • Reduce workspace target folder size from 10.9 GB to 10.6 GB #457
  • Reduce workspace build dependencies from 296 to 270 #457
  • Reduce workspace dev dependencies from 502 to 496 #457
  • Move Rust examples submodule to monorepo #475
  • Switch to LLVM code coverage instead of using Tarpaulin #478

Removed

  • Move lld-rs to separate repository #373
  • Unused dependencies #435

Fixed

  • Typos in documentation #340 #348
  • Type inference problem for resolved types #358
  • Mac OS Big Sur sdkroot #362
  • Missing closing brace of error_block #364
  • Missing semicolon in declaration recovery set #365
  • C API link in book #372
  • Multi-threaded cargo test #407

[0.3.0] - 2021-04-12

The third Mun release includes big usability improvements; multi-file projects, a language server with diagnostics and autocompletion, and improvements to robustness and developer workflow to name a few.

Special thanks to @emi2k01, @tdejager, @ethanboxx, @sinato, @dependabot, @legendiguess, and @sburris0 for their contributions to this release.

Added

  • generate rust tests for code snippets in book #311
  • support for completions #306
  • add mut keyword #305
  • describe how to install/build LLVM #304
  • runtime linking #300
  • implements incremental file updates #298
  • adds document symbol provider #297
  • add option to emit IR #296
  • integrated new vfs #294
  • adds lsp document symbol provider #293
  • shorten commit hash with environment file #292
  • use statements language support #290
  • make type-specific data (such as StructInfo) part of TypeInfo #287
  • add AsValue macro support for enums #286
  • alignment of struct fields #285
  • adds modules and visibility #283
  • adds fixtures to support multiple files from string #272
  • refactored RawItems into ItemTree #271
  • split database and added docs #267
  • use Idx instead of macro in arena #266
  • never return type in let initializer #264
  • add mdbook plugin for testing mun code in book #263
  • emit and link bitcode files instead of obj does not work on MacOS #261
  • use custom prebuild llvm distribution on ubuntu #260
  • emit and link bitcode files instead of object files #258
  • move test utility functions to separate crate #253
  • move library loading logic to separate crate #252
  • type alias #251
  • Implement mun new and mun init #246
  • removed outdated comments #245
  • upgrade to salsa 0.15 #244
  • parsing of unmatched right curly braces ('}') #243
  • explicitly specify latest Ubuntu LTS #241
  • build binaries for release branches #240
  • shared diagnostics between compiler and language server #239
  • add benchmarks for and optimise struct field marshalling #238
  • initial LSP support #236

Changed

  • updated book for 0.3 changes #314
  • update runtime FFI #312
  • Inkwell beta.2 and LLVM11 #303
  • upgrade to official inkwell #254
  • generate C ABI from Rust code #255

Removed

  • removed async code and switched to lsp_server #295

Fixed

  • parser performance issues #307
  • manually extract llvm release to get more output #302
  • adds logging to windows llvm install #301
  • fix broken book link and CoC link #284
  • 7zip issues #280
  • dont run mun tests on CI #278

[0.2.1] - 2020-07-08

This patch release for Mun v0.2.0 includes a variety of bug fixes.

Special thanks to @RadicalZephyr, @benediktwerner, and @fominok for their contributions to this release; and to @jDomantas and @sigmaSd for the initial discovery and reporting of fixed issues.

Added

  • Type-safe inkwell types #202

Fixed

  • Remove return-blocking semicolon from ch01 listing 01 of the book #192
  • Code blocks in ch02-02-functions of the book #194
  • Replace overly complicated redirection rules with a simple hack #196
  • Missing argument for fibonacci function in the book #197
  • Replace float with f32 in the book #204
  • Windows libclang issues #205
  • Crash on missing nested private function #221
  • Panic when using mun build #229
  • clippy::many_single_char_names in macro #231
  • Compiler panics when accessing a field of a temporary #232
  • LLVM assertions #233
  • Proper tarpaulin skip attribute #235

[0.2.0] - 2020-05-15

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.

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

Added

  • Updated binaries for Runtime C API #184
  • crates.io publishing metadata #183
  • Mun book in main repository #182
  • Cloning instructions in README #179
  • Log upon assembly reload #175
  • Buoyancy example #174
  • Zero initialise fields with different struct types during memory mapping
  • Updated code sample in README #181
  • Map fields with different struct memory kinds during memory mapping #171
  • Support for adding extern functions in Runtime CAPI #169
  • Split FunctionInfo into signature, prototype, and definition #166
  • Test for type conversion during memory mapping #164
  • Garbage collection methods in Runtime CAPI #163
  • Number type inferencing #154
  • Return Rc<RefCell<Runtime>> from RuntimeBuilder #153
  • left-shift (<< and <<=), right-shift (>> and >>=) operators
  • bitwise and (& and &=), or (| and |=), xor (^ and ^=) operators
  • bool and (&&), or (||) operators
  • struct assignment (=) operator
  • bool assignment (=) operator #144
  • StructRef can be cloned #143
  • Clarified usage of unsafe code
  • Cast fundamental types during struct memory mapping #140
  • Unary ! and - operators #136
  • % and %= operators #135
  • Missing space in invoke_fn15 function #132
  • Merged file_ir and group_ir snapshots #131
  • Runtime support for extern functions without return type #127
  • i128 and u128 integer types #124
  • Use -> instead of : for function return types #123
  • Allow underscores in numeric literals
  • Hex, binary, and octal literals
  • Typed literals #122
  • struct memory mapping #117
  • Retrieve TypeInfo and StructInfo during calls in a StructRef #109
  • Performance benchmarks #104
  • Test for incremental compilation #102
  • Garbage collection using mark & sweep #99
  • Size and alignment of types in ABI #98
  • Heap-allocated object management using pointer indirection #97
  • extern functions #96
  • Marshalling of struct(value) types #93
  • Restrict symbol generation to pub functions #92
  • Integration with annotate-snippets crate #91
  • Support for extern functions in the dispatch table #90
  • Unit tests for Runtime CAPI
  • Marshalling of fields with the struct type #87
  • Unit test for LineIndex::line_str function #86
  • MunStructInfo is appended to MunTypeInfo for struct types #84
  • Marshalling of struct types #83
  • Improved error messages for missing function signatures #80
  • License, homepage, and repository information in README #71
  • Simple binary operation type checking #70
  • Tools for manual generation of ABI & runtime CAPI bindings #69
  • Test UTF-8 validity of compiler-generated CStr #67
  • Optimised CStr::from_ptr(ptr).to_str() to from_utf8_unchecked in ABI #66
  • LLVM install instructions for Arch Linux in README #65
  • ABI support for struct types
  • struct literals
  • struct declarations #64
  • while expression #63
  • break expression #62
  • Changed crate authors #61
  • loop expression #60
  • Incremental compilation when hot reloading #49

Changed

  • Removed old snapshots #170
  • Updated badges in README #162
  • Updated code sample in README #161
  • Simplified MemoryMapper API #142
  • Split artifact generation and CI tests #141
  • Lock cbindgen dependency #126
  • Updated Arch Linux install instructions in README #116
  • Code coverage using tarpaulin instead of grcov #100
  • Compiled libraries use munlib extension #75
  • Use codecov.io instead of coveralls #59
  • Install instructions in README #55

Removed

  • Removed float, uint, and int types #157

In addition, there were a lot of bug fixes.

[0.1.0] - 2019-11-11

Added

  • Support all fundamental types as return types when starting a Mun library from the CLI #45
  • return expressions #38
  • Statically link against liblld instead of spawning as process #37
  • Generation and upload of artifacts #36
  • Github actions continuous integration #30
  • Update operators and diagnostics #29
  • Example of hot reloading in the Mun Runtime
  • Error reporting
  • C++ bindings for the Mun Runtime #25
  • Run clippy on CI and pre-commit
  • Diagnostics for mismatching or missing else
  • if expressions code generation
  • if statement type checking
  • never type
  • Add cargo husky to enable automatic git hooks
  • Testing of type inferencing
  • Parsing of if statements #24
  • Comparison operators #23
  • Automatic generation of C bindings for the runtime #22
  • Trait extension of Result type that allows retrying and waiting for a correct result #15
  • Integrate dispatch table in Mun runtime #11
  • Dispatch table
  • Generation of function call IR
  • Function call inferencing #9
  • Command-line interface for Mun Compiler and Mun Runtime
  • Compiler daemon that detects changed files and recompiles them
  • Runtime builder #6
  • Detection of duplicate definition names #5
  • badges & licenses #1