github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/docs/changelog/v5.2.md (about) 1 # v5.2 2 3 The v5.2 release introduces significant new features and improvements for those using Murex as their interactive shell. Many of these features are unique to Murex. 4 5 ## Breaking Changes 6 7 * Change to experimental feature: all lambda variables now follow the `$.k` and `$.v` convention ([read more](https://murex.rocks/parser/lambda.html)) 8 9 * Murex now requires Go compiler version 1.20 or above, however a C compiler is no longer required (though still supported) 10 11 * expressions that return a boolean will no longer write `true` nor `false` to stdout if it is followed by a boolean operator (`&&` or `||`). This is marked as a breaking change because some of Murex's tests had to be updated to reflect this update, however this change actually fixes a number of bugs around expectations for how boolean expressions should work 12 13 ## Deprecation Warnings 14 15 Please read out [compatibility commitment](https://murex.rocks/compatibility.html) to understand how features are deprecated. 16 17 * the `?` pipe will be deprecated to make way for a the ternary operator. You can achieve the same result with `<err> <!out>`, eg `command <err> <!out> parameters... | next-command ...` 18 19 * experimental TTY buffer was removed. This was disabled by default, would create a slight slow down to rendering when enabled, created a few rendering glitches when enabled, added to the overall code complexity, and the primary use case for this no longer requires buffering anyway 20 21 ## Features 22 23 Features marked as **EXPERIMENTAL** are provided without assurances of future breaking changes. All other features are considered stable as part of Murex's [compatibility commitment](https://murex.rocks/compatibility.html). 24 25 * `debug` builtin now supports `{ ... }` blocks ([read more](https://murex.rocks/commands/debug.html)) 26 27 * new flags for `count`: `--sum` / `-s` and `--sum-strict` 28 29 * Lambda support for arrays and objects re-written and now considered stable ([read more](https://murex.rocks/parser/lambda.html)) 30 31 * `f9` command line preview added -- this feature allows you to quickly build and test pipelines that might otherwise require iterating on trial and error to get right 32 33 * `f1` autocomplete preview is no longer considered experimental. Several bug fixes included 34 35 * new pipe: `pty`. This behaves similarly to a regular pipe except it creates a pseudo-TTY 36 37 * `f1` preview now includes cheat sheets from https://cheat.sh/ 38 39 * job control: builtins can now be stopped via `^z` ([issue #716](https://github.com/lmorg/murex/issues/716)) 40 41 * `docgen` has seen several new features added to improve the ease of writing documentation for Murex 42 43 ## Bug Fixes 44 45 * readline: fixed regression bug introduced in preview release where vim keys wouldn't write their updated state to the terminal 46 47 * `f1` preview now resets the cursor position correctly when closed 48 49 * `f1` preview has had autocomplete parameters rewritten to jump to the right `man` page flag more precisely 50 51 * `f1` preview scrolling had an off-by-one error resulting in the last line sometimes getting cropped 52 53 * shebang (`#!/path/to/murex`) scripts should be loaded into a module namespace. This fixes module scoped config ([read more](https://github.com/lmorg/murex/discussions/756)) 54 55 * command lines passed via `-c` flag (eg `murex -c "out hello world"`) are also loaded into a module namespace 56 57 * readline: trim whitespace before walking history 58 59 * recommended optional builtins are now opt-out -- this is to make it easier to work with 3rd party package maintainers 60 61 * job control: bug fixes around when to show and hide the interactive prompt ([issue #716](https://github.com/lmorg/murex/issues/716)) 62 63 * job control: processes invoked via `bg {...}` now support being brought to the foreground via `fg` (this could be argued as a new feature) ([issue #716](https://github.com/lmorg/murex/issues/716)) 64 65 * error handling added to `get-type` ([read more](https://murex.rocks/commands/get-type.html)) 66 67 * boolean expressions, eg `2+3==5` now work with boolean operators (`&&`, `||`). eg `$USER == "bob" && out "Hello Bob"`. 68 69 ## Special Thanks 70 71 Special thank yous for this release goes to [tiymat](https://github.com/tiymat) for their bug fixes and everyone in the discussions group for raising bug reports and design discussions. 72 73 You rock! 74 75 <hr> 76 77 Published: 18.11.2023 at 20:59 78 79 ## See Also 80 81 * [Contributing](../Murex/CONTRIBUTING.md): 82 Guide to contributing to Murex 83 * [Install](../Murex/INSTALL.md): 84 Installation instructions 85 * [Job Control](../user-guide/job-control.md): 86 How to manage jobs with Murex 87 * [Terminal Hotkeys](../user-guide/terminal-keys.md): 88 A list of all the terminal hotkeys and their uses 89 * [`[{ Lambda }]`](../parser/lambda.md): 90 Iterate through structured data 91 * [`bg`](../commands/bg.md): 92 Run processes in the background 93 * [`count`](../commands/count.md): 94 Count items in a map, list or array 95 * [`debug`](../commands/debug.md): 96 Debugging information 97 * [`fg`](../commands/fg.md): 98 Sends a background process into the foreground 99 100 <hr/> 101 102 This document was generated from [gen/changelog/v5.2_doc.yaml](https://github.com/lmorg/murex/blob/master/gen/changelog/v5.2_doc.yaml).