Skip to main content

v5.2

Laurence MorganAbout 2 min

v5.2

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.

Breaking Changes

  • Change to experimental feature: all lambda variables now follow the $.k and $.v convention (read moreopen in new window)

  • Murex now requires Go compiler version 1.20 or above, however a C compiler is no longer required (though still supported)

  • 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

Deprecation Warnings

Please read out compatibility commitmentopen in new window to understand how features are deprecated.

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

  • 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

Features

Features marked as EXPERIMENTAL are provided without assurances of future breaking changes. All other features are considered stable as part of Murex's compatibility commitmentopen in new window.

  • debug builtin now supports { ... } blocks (read moreopen in new window)

  • new flags for count: --sum / -s and --sum-strict

  • Lambda support for arrays and objects re-written and now considered stable (read moreopen in new window)

  • 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

  • f1 autocomplete preview is no longer considered experimental. Several bug fixes included

  • new pipe: pty. This behaves similarly to a regular pipe except it creates a pseudo-TTY

  • f1 preview now includes cheat sheets from https://cheat.sh/

  • job control: builtins can now be stopped via ^z (issue #716open in new window)

  • docgen has seen several new features added to improve the ease of writing documentation for Murex

Bug Fixes

  • readline: fixed regression bug introduced in preview release where vim keys wouldn't write their updated state to the terminal

  • f1 preview now resets the cursor position correctly when closed

  • f1 preview has had autocomplete parameters rewritten to jump to the right man page flag more precisely

  • f1 preview scrolling had an off-by-one error resulting in the last line sometimes getting cropped

  • shebang (#!/path/to/murex) scripts should be loaded into a module namespace. This fixes module scoped config (read moreopen in new window)

  • command lines passed via -c flag (eg murex -c "out hello world") are also loaded into a module namespace

  • readline: trim whitespace before walking history

  • recommended optional builtins are now opt-out -- this is to make it easier to work with 3rd party package maintainers

  • job control: bug fixes around when to show and hide the interactive prompt (issue #716open in new window)

  • job control: processes invoked via bg {...} now support being brought to the foreground via fg (this could be argued as a new feature) (issue #716open in new window)

  • error handling added to get-type (read moreopen in new window)

  • boolean expressions, eg 2+3==5 now work with boolean operators (&&, ||). eg $USER == "bob" && out "Hello Bob".

Special Thanks

Special thank yous for this release goes to tiymatopen in new window for their bug fixes and everyone in the discussions group for raising bug reports and design discussions.

You rock!


Published: 18.11.2023 at 20:59

See Also

  • Contributing: Guide to contributing to Murex
  • Install: Installation instructions
  • Job Control: How to manage jobs with Murex
  • Terminal Hotkeys: A list of all the terminal hotkeys and their uses
  • [{ Lambda }]: Iterate through structured data
  • bg: Run processes in the background
  • count: Count items in a map, list or array
  • debug: Debugging information
  • fg: Sends a background process into the foreground

This document was generated from gen/changelog/v5.2_doc.yamlopen in new window.

Last update:
Contributors: Laurence Morgan