site/contents/news/v0.44.0.md
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
-----
content-type: "post"
title: "Version 0.44.0 released"
slug: v0.44.0
date: 2024-06-18
-----
{@ _defs_.md || 0 @}
This minor release brings a lot of refactoring and a few breaking changes related to sigils and introduces a new concept of _dot notation_ for symbols.
In previous releases, it was possible to use the `invoke` symbol (and the `*` sigil) to access members of a dictionary or modules, e.g. `*crypto/encode` to access the {#link-operator||crypto||encode#} symbol of the {#link-module||crypto#} module. This was fine, but a little bit verbose... plus this didn't work for setting values, for example.
As of this release, you can no longer use `.` in symbols, because that will be used as a namespace separator, so you'll be able to do things like this:
```
{} :example
(dup *) :example.square
(dup dup * *) :example.cube
2 example.square example.cube puts! # Prints 64
```
> %tip%
> Tip
>
> You can run `min run min-upgrade <folder>` to automatically upgrade all the `.min` files in `<folder>` and all its subfolders.
### BREAKING CHANGES
- User-defined symbols can no longer contain dots (`.`).
- The symbol `invoke` and the `*` sigil have been removed in favor of symbol dot notation.
- The `.` and `..` symbols have been renamed to `pwd` and `parent-dir` respectively.
- The `!` symbol has been removed; use `system` instead.
- The `!` sigil has been removed; use `system` instead.
- The `&` symbol has been removed; use `run` instead.
- The `&` sigil has been removed; use `run` instead.
- The `/` sigil has been removed; use `dget` or symbol dot notation instead.
- The `%` sigil has been removed; use `dset` or symbol dot notation instead.
- The `>` sigil has been removed; use `save-symbol` innstead.
- The `<` sigil has been removed; use `load-symbol` innstead.
- Moved `get-env`, `put-env`, `$` symbol and `$` sigil from `sys` to `global` module.
### New Features
- It is now possible to access dictionary (and module) keys (even nested) via dot notation. This replaces the `invoke` symbol.
- Added shell auto-completion for symbols using dot notation
- Added a new `color` symbol to the `io` module to enable/disable terminal color output.
- Added a new `from-html` symbol to the `xml` module to parse HTML documents and fragments.
- Added a new `xentity2utf8` symbol to the `xml` module to convert an XML entity to its corresponding UTF-8 string.
- Added a new `xescape` symbol to the `xml` module to convert special XML characters into the corresponding XML entities.
### Fixes and Improvements
- Fixed `tokenize` symbol (wasn't processing commands correctly)
|