Skip to main content


Laurence MorganAbout 2 min


This release sees significant improvements for use with non-latin characters in both the interactive prompt and shell scripting. It introduces new syntax to make working with structured data even easier than before. As well as new data types and smoother user experience.

Breaking Changes

  • $PWD is no longer a str. If you need to parse $PWD as a string then you should out: $PWD or use ${pwd}

  • . is now a valid bareword character for variables. This will break any instances in code that contain something like out $hello. however you can now use out $(hello). syntax for safer string infixing


  • dot notation added for variables which allow accessing and writing to object properties. eg $json.array.index

  • added support variable encapsulation via $() to avoid variable barewords from leaking into other values when infixed. eg $(foobar) is the same as $foobar (read more)

  • variable names can now be Unicode, eg $(比如) = "举手之劳就可以使办公室更加环保,比如,使用再生纸。" (read more)

  • Unicode wide characters are properly handled in readline

  • new data type path that is an object

  • new data type paths

  • support for lambdas added to variables: eg @array[{ function }]

  • readline [ctrl]+[f] now supports word matching as well as regexp (read more)

  • readline [ctrl]+[f] now supports glob filters (eg *.txt) too (read more)

  • $ENV and $GLOBAL objects (deprecates the need for global and export)

  • improved error messages in expressions

  • scalars can be used as assignees in expressions, eg $foo = "bar"

  • added -i flag to ssh autocompletion

  • readline prompts are now buffered to reduce cursor flickering

Non-User Facing / Maintenance Changes

  • backend support added for data types to be dynamic objects

  • updated autocompletion code for docker and git

Bug Fixes

  • better wide character support in auto completion suggestions

  • function parameters default and comment fields are no longer order dependent

  • better string parsing for barewords inside arrays and objects

  • ahead of time hint caching now done on demand per hint page rather than against every executable upon Murex start up

  • new lines should be ignored in %{}

  • bareword true and false should be converted to boolean in %{}

  • autocomplete suggestions are now dedup'ed when delayed results return similar suggestions to fast results

  • various preview pane bug fixes

  • support for ANSI escape sequences in experimental (disabled by default) TTY buffer

  • correction to count docs

  • error not handled in regexp expression matches, =~

Published: 26.03.2023 at 17:50

See Also

This document was generated from gen/changelog/v4.0_doc.yamlopen in new window.

Last update:
Contributors: Laurence Morgan