Skip to content

v2.5.0

Compare
Choose a tag to compare
@odino odino released this 12 May 18:15
· 32 commits to master since this release

A fresh new minor release of ABS: always be shipping! 🚢

Added a negative membership operator !in

Earlier, you could test membership with x in list, but in order to negate that expression you had to !(x in list) which is quite verbose.
We now added in #412 the !in operator to make things simpler: x !in list, it behaves just like python's not in.

Module cache

Every time you required a module, you'd always get a fresh instance of it, which would cause some funny behaviors:

$ require('@runtime').name = "xxx"
$ require('@runtime').name
abs

We now (#428) cache modules as soon as they are required, so the next time you require them you will receive the same instance you've required before:

$ require('@runtime').name = "xxx"
$ require('@runtime').name
xxx

This only applies to require and not source, as source is intended to be used in order to always evaluate a block of fresh code in the current environment.

Specify your own shell

In #429 we added the ability to execute commands with any shell, not just bash -c.

You can now specify a different shell to execute system commands with through ABS_COMMAND_EXECUTOR:

`echo \$0` # bash
env("ABS_COMMAND_EXECUTOR", "sh -c")
`echo \$0` # sh