# The MoonBit Update——0311

**URL:** <https://discuss.moonbitlang.com/t/the-moonbit-update-0311/175>\
**Category:** Announcement\
**Tags:** weekly-update\
**Created:** [March 11, 2024, 10:08am UTC](https://discuss.moonbitlang.com/t/the-moonbit-update-0311/175 "2024-03-11T10:08:04Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![jodie](https://discuss.moonbitlang.com/letter_avatar_proxy/v4/letter/j/aeb1de/32.png) [@jodie](https://discuss.moonbitlang.com/u/jodie)\
**Post date:** [March 11, 2024, 10:08am UTC](https://discuss.moonbitlang.com/t/the-moonbit-update-0311/175/1 "2024-03-11T10:08:04Z")

</div>

## MoonBit Update

1. moonbitlang/core is now open-source at [GitHub - moonbitlang/core: MoonBit's Core library · GitHub](https://github.com/moonbitlang/core). We are thrilled to receive positive feedback from the community. To learn more about the moonbitlang/core open source details, click here: [Open sourcing MoonBit Core | MoonBit](https://www.moonbitlang.com/blog/moonbitlang-core-opensource)

2. MoonBit now supports labeled argument and optional argument. Labelled arguments are useful for distinguishing different parameters of the same type in a function:

3. A new builtin type `SourceLoc` is added, representing source code location. If a function declares an optional parameter of type `SourceLoc` with `_` as default value, MoonBit will automatically inject the location of call site when calling this function:

4. `===` has been deprecated; please use `physical_equal` as its replacement.

5. A new builtin type `UnsafeMaybeUninit[T]` and a few related builtin primitives have been added to support implementing high performance data structures, like vectors, in the MoonBit Core. Because they are unsafe, regular MoonBit programs are not expected to use them.

## IDE Updates

1. The online IDE now supports running tests via CodeLens.

 ![](https://discuss.moonbitlang.com/uploads/default/original/1X/040a4de362b920d9147272082305a2e61d4db325.png)  
2. Significantly improved how moonfmt handles source code with comments.  
3. Enhanced stability and user experience for the IDE and VSCode plugin.  
a. The VSCode plugin now invokes `moon check` on file changes rather than starting `moon check -w`.  
b. Improved the typing experience for multi-line strings and docstrings. Now, inserting a line break inside a multi-line string/docstring automatically prefixes it with `#|` or `///`.  
c. Fixed issues with hover, errors in `moon.pkg.json`, empty files, etc., that caused lsp errors.

## Build System Update

Fixed several issues with moonbuild.

a. Fixed an issue where `moon upgrade` failed on Windows.  
b. Fixed an issue where `moon add` did not remove the old version when adding a new version.  
c. Fixed an issue where `moon check` could fail locally but still allow publishing.

## Toolchain Update

Markdown linter now supports `expr` tags.

````markdown
```moonbit expr
1 * 2 + 3

````

You can see the corresponding output when running `mdlint`:

```auto
5

```
