Bot releases are hidden (Show)
Published by lmorg almost 3 years ago
There are a number of new features in this release
a
et al) no longer returns an error if the start and end rangesStrict variables now supported (like set -u
in Bash). This will mean any
variables passed that haven't been initialized beforehand will cause that
pipeline to fail. Currently this is opt in, a future release of murex will
flip that and make it opt out. So take this opportunity to enable it in your
~/.murex_profile
and test your scripts. Enable this via config
:
config: set proc strict-vars true
This feature was requested in issue #380.
New builtin: datetime
. This builtin allows you to convert date and/or time
strings of one format into strings of another format. datetime
is a
supercharged alternative to the UNIX command date
aimed at making scripting
easier.
mkarray (a
et al) now supports dates. eg [01-Jan-20..05-May-21]
. If no
start nor end date appears then mkarray assumes range starts or ends at
current date.
openagent
profile for image
data types has been improved. murex now
better supports tmux and iTerm2.
runtime --config
now displays FileRef
for every set
as well as define
,
named FileRefSet
and FileRefDefine
respectively. So you can now easily
trace where global config is being set and defined.
Better error messages in the interactive terminal.
Prompt now defaults to only displaying current directory rather than the full
path. You can revert this change by adding your own prompt in config
. eg:
config: set shell prompt {
out "{RESET}{YELLOW}${pwd_short} {RESET}» "
}
config: set shell prompt-multiline {
let len = ${pwd_short -> wc -c} - 1
printf "%${$len}s » " $linenum
}
Parser updated to better support multiline pipelines where the newline is
escaped and a comment exists after issue #379.
This only applies to shell scripts, the interactive terminal hasn't yet been
updated to reflect this change.
Fixed regression bugs with autocomplete parameters that affected some dynamic
blocks.
readline
now caches syntax highlighting and hint text to improve the
responsiveness of the interactive terminal. This is set to a hard limit of
200 cached items however that will be a configurable metric in a future
release. Also planned for the future is caching autocompletion suggestions.
Loading message added for the default profile, ie the one that is compiled
into and thus shipped with murex.
Fixed bug with fid-list
and jobs
where they were outputting the p.Name
struct rather than p.Name.String()
. This lead to the process name appearing
garbled under some circumstances.
{BG-BLUE}
emitted the wrong ANSI escape code, this has been corrected.
Several readline
bug fixes.
Thread safe copying of parameters upon fork. The previous code never actually
generated any race conditions and I don't think ever could. However it was
ambiguous. This new code makes the copy more explicit and appears to have
also brought some minor performance improvements in benchmarks too.
Behavioural test framework has been refactored to make it easier to add new
behavioural tests.
Lots of new tests added.
Updated documentation.
Published by lmorg about 3 years ago
This release brings some major improvements to the discoverability of commands
and their parameters in the interactive terminal.
New builtin: method
. This is used to help turn some commands into a
"method", similar in concept to object orientated development where the tab-
completer will return a list of other commands that are compatible with the
formers output data types. It's purely an autocompletion tool and has no
effect in shell scripts.
Autocompletion suggestions will differ based on what pipes are used. The idea
behind this is to improve the discoverability of commands. All tokens can
still be used to pipeline to any command type (like before). This rule only
affects autocomplete suggestions in the interactive prompt.
|
will show all available aliases, functions, builtins and external
commands, as usual
->
will default to showing only compatible commands defined in method
(see above), however if no methods are found then ->
will fall back to
suggesting all available aliases, functions, builtins and external commands,
like |
.
The idea here is for ->
to surface commands that are commonly
expected to be pipelined together but without forcing the user to pause and
remember which token exposes what commands. While |
is still available for
familiarity
Autocompletion de-duplication now places hyphen-prefixed flags at the end of
the results when sorting. This helps bring more relevant flags forward, with
hyphen-prefixed flags still visible when users press -
External commands return a error message if the exit status is non-zero
(issue #299)
Index()
([
) now returns a different data type from the root object if the
element is a string, integer, float64, boolean or nil (issue #316)
runtime
was missing a few flags for reporting supported data types against
the newer APIs
Generic types (*
/ generic
) to include two spaces between columns when
marshalled
Syntax highlighter colour tweaks -- no longer using background highlighting
because that looks weird and unreadable on some terminal colour schemes
Bug fixes to the fast parser
Bug fixes to readline merged from v2.2.1200
(issue #362)
hcl
and bson
types now use ReadArray
templates so their behavior should
mimic JSON and YAML
Fast parser is now aware of which pipe token (eg |
, ->
, =>
, ?
) is used
Unit test concurrency fix
New tests written for the fast parser
Updated documentation
Published by lmorg about 3 years ago
This release sees new optional features plus major bug fixes to the existing
code base:
One config
shell key has changed it's name:
spellcheck-func
This is to bring spellcheck inline with other keys that contain executable
code.
This change might break some of your existing profile config!
Windows coreutils no longer returns exit code of 13 for aliases
Fixed regression bug in fg (added stronger testing here to prevent future
regressions)
Generic data type, *
, now uses tabwriter
to align columns
Spellchecker error handling tweaked to be more user friendly
Environmental variables can been created per command:
stdstream.SetDataType() only works on first call -- ignored thereafter.
This will impact pipes that are written to by many processes but results
in more predictable code due possible timing errors where different
processes are overwriting the stream data type
stdstream.SetDataType() only works on first call -- ignored thereafter.
This will impact pipes that are written to by many processes but results
in more predictable code due possible timing errors where different
processes are overwriting the stream data type
All dependencies have been updated, pinned and the vendors
directory
rebuilt
Fixed some issues flagged up in goreportcard.com
Some internal API changes that have no UI/UX ramifications but makes the
code more maintainable
Lots more unit tests added
Lots of code rewritten to avoid potential data races