Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Here is my proposal for an
exec(command)
builtin function to solve issue #199.Considering that implementing a builtin function does not require new lexical support and that
exec(command)
is similar to whatlinux C libs
provide and thegolang exec module
supports, it seems to me that this model is reasonably expressive as well as easy to implement.See
tests/test-exec.abs
as example of an abs script that marshalls args for a an interactive editor and then executes it with live stdIO. This works in bothlinux with nano
andwin10 with notepad
. It also works for commands in linux that terminate with&
which means we can launch a true daemon process in the background as well.As a bonus, the
$var
command string interpolation code has been moved to theutil
module where it can be shared by regular commands as well as exec commands.