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).