ion issueshttps://gitlab.redox-os.org/redox-os/ion/-/issues2019-03-23T17:46:26Zhttps://gitlab.redox-os.org/redox-os/ion/-/issues/494support CDPATH2019-03-23T17:46:26ZMichael Aaron Murphymmstick@pm.mesupport CDPATH*Created by: aeosynth*
> The search path for the `cd` command. This is a colon-separated list of directories in which the shell looks for destination directories specified by the `cd` command. A sample value is ".:~:/usr".
as seen in...*Created by: aeosynth*
> The search path for the `cd` command. This is a colon-separated list of directories in which the shell looks for destination directories specified by the `cd` command. A sample value is ".:~:/usr".
as seen in bash, zsh, fish...Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/854Backslash at end of comment gobbles next line2019-03-25T00:52:07ZAdminXVIIBackslash at end of comment gobbles next line```
echo auie # auieie\
auieauieie
```
outputs `auie`.```
echo auie # auieie\
auieauieie
```
outputs `auie`.Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/457Implement Step By Ranges2019-04-02T15:43:30ZMichael Aaron Murphymmstick@pm.meImplement Step By RangesWe have inclusive ranges, and exclusive ranges, so now we need a means of specifying an optional stepping.
```ion
$ let array = 1 2 3 4 5 6 7 8 9 10
$ echo @array[0,2..10]
> 1 3 5 7 9
$ echo {0,3..10}
> 0 3 6 9
```We have inclusive ranges, and exclusive ranges, so now we need a means of specifying an optional stepping.
```ion
$ let array = 1 2 3 4 5 6 7 8 9 10
$ echo @array[0,2..10]
> 1 3 5 7 9
$ echo {0,3..10}
> 0 3 6 9
```Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/858Decimal crate doesn't allow building for targets like AArch642019-04-12T04:24:24ZAleksey HalahanDecimal crate doesn't allow building for targets like AArch64Hey there! Seems like the decimal crate cannot be built on a set of different architectures. [Here is an issue](https://github.com/alkis/decimal/issues/52) that was created a while ago regarding this problem on the decimal crate's git re...Hey there! Seems like the decimal crate cannot be built on a set of different architectures. [Here is an issue](https://github.com/alkis/decimal/issues/52) that was created a while ago regarding this problem on the decimal crate's git repository.
Maybe ion should move to a pure-rust implementation of decimal numbers? I think there should be a solution. Thanks!Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/592Exit On Error Should Have Configurable Callback2019-07-22T20:50:25ZMichael Aaron Murphymmstick@pm.meExit On Error Should Have Configurable CallbackThose using Ion as a library should be able to choose the behavior that will enact when this conditition is met.Those using Ion as a library should be able to choose the behavior that will enact when this conditition is met.Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/542calc builtin conflicts with commonly-used tool2019-07-22T21:13:58ZMichael Aaron Murphymmstick@pm.mecalc builtin conflicts with commonly-used tool*Created by: jbg*
**Reproduction**: Run `calc`
**Expected behavior**: The common "C-style arbitrary precision calculator" ([website](http://www.isthe.com/chongo/tech/comp/calc/)), distributed as a part of *NIX distributions since 199...*Created by: jbg*
**Reproduction**: Run `calc`
**Expected behavior**: The common "C-style arbitrary precision calculator" ([website](http://www.isthe.com/chongo/tech/comp/calc/)), distributed as a part of *NIX distributions since 1994, launches.
**Actual behavior**: Apparently my shell is hung, but in fact the shell builtin is waiting for input and does not respond to Ctrl-C.
Maybe I'm one of the last people still using the fantastic `calc` calculator, but I hope not. Please consider renaming your builtin, or if not, at least make it respond to Ctrl-C :)Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/849A new builtin to quietly run a detached process2019-09-04T05:38:10ZElahn IentileA new builtin to quietly run a detached processTraditionally, this is done by redirecting stdout and stderr to /dev/null, to prevent it cluttering up the terminal, backgrounding the process then disowning it. e.g.
```
# xed launch.sh &> /dev/null &
# disown
```
Launching a GUI appl...Traditionally, this is done by redirecting stdout and stderr to /dev/null, to prevent it cluttering up the terminal, backgrounding the process then disowning it. e.g.
```
# xed launch.sh &> /dev/null &
# disown
```
Launching a GUI application from the command-line with a file/directory argument is common, so we should make it quick and simple. Possible names for this builtin command:
- run
- start
- launchIon Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/831Syntax expansion error2020-04-22T00:22:05ZMichael Aaron Murphymmstick@pm.meSyntax expansion error```
let foo = bar; echo "$foo\""
```
Outputs `bar\"` instead of `bar"````
let foo = bar; echo "$foo\""
```
Outputs `bar\"` instead of `bar"`Ion Shell v1.0.0Roland KovácsRoland Kovácshttps://gitlab.redox-os.org/redox-os/ion/-/issues/791SIGINT w/ Git Prompt Causes No Prompt2020-04-22T00:51:03ZMichael Aaron Murphymmstick@pm.meSIGINT w/ Git Prompt Causes No PromptWhen using the git prompt (it may be function-based prompts in general?), the prompt is not generated after stopping an application with Ctrl + C.When using the git prompt (it may be function-based prompts in general?), the prompt is not generated after stopping an application with Ctrl + C.Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/416Better Builtin Help Documentation2020-04-22T01:00:30ZMichael Aaron Murphymmstick@pm.meBetter Builtin Help DocumentationCurrently, builtins have very basic one-line short descriptions, but what we need is to provide a complete manpage when help for a specific command is asked for.Currently, builtins have very basic one-line short descriptions, but what we need is to provide a complete manpage when help for a specific command is asked for.Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/832Sudo completion doesn't work with `$PATH`2020-04-22T02:52:47Zstratactstratact1@gmail.comSudo completion doesn't work with `$PATH`For instance, when I do `# sudo pv<TAB>` to try to complete it as `sudo pvcreate`, it does nothing.
But when doing `# pv<TAB>` I get the list of completions without sudo:
```
pvchange pvck pvcreate pvdisplay pvmove pvremo...For instance, when I do `# sudo pv<TAB>` to try to complete it as `sudo pvcreate`, it does nothing.
But when doing `# pv<TAB>` I get the list of completions without sudo:
```
pvchange pvck pvcreate pvdisplay pvmove pvremove pvresize pvs pvscan
```Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/771Document default values and variables2020-12-06T17:01:50ZMichael Aaron Murphymmstick@pm.meDocument default values and variables* [x] `[ no_such_command whitespace duplicates ]`.
* [x] Make sure duplicates is mentioned in the manual
* [ ] Make sure all default values & variables are documented as well* [x] `[ no_such_command whitespace duplicates ]`.
* [x] Make sure duplicates is mentioned in the manual
* [ ] Make sure all default values & variables are documented as wellIon Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/818cargo install ion2020-12-12T23:18:13ZSquirrelcargo install ionWould be lovely if cargo install ion worked just like cargo install bat or cargo install ripgrep works.
Then I could just type ion and run the shell.
(Liking your work, trying to use it as main shell)Would be lovely if cargo install ion worked just like cargo install bat or cargo install ripgrep works.
Then I could just type ion and run the shell.
(Liking your work, trying to use it as main shell)Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/566Control Flow Redirections?2020-12-12T23:48:33ZMichael Aaron Murphymmstick@pm.meControl Flow Redirections?Should control flow keywords be able to perform and work with redirections themselves?
```sh
for x in 1...10
echo $x
end > results.txt
```
And a theoretical `map` keyword that works similar to `for`, but reads from stdin:
```sh
ca...Should control flow keywords be able to perform and work with redirections themselves?
```sh
for x in 1...10
echo $x
end > results.txt
```
And a theoretical `map` keyword that works similar to `for`, but reads from stdin:
```sh
cat results.txt | map x
echo $x
end
```
And combined:
```sh
for x in 1...10
echo $x
end | filter x
ends-with 5 $x
end | map x
echo $x
end
```
```Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/995neovim: can not read /tmp file created by shell2020-12-30T10:16:06Zmatu3baneovim: can not read /tmp file created by shellbug: I would like to use ion as shell inside neovim to read build logs in a new buffer or new tab. However neovim can not read /tmp files. Probably, because they are not created?
expect: ion should create /tmp files upon request and re...bug: I would like to use ion as shell inside neovim to read build logs in a new buffer or new tab. However neovim can not read /tmp files. Probably, because they are not created?
expect: ion should create /tmp files upon request and reading /tmp files should be possible
related: none
code: input to neovim in visual mode
```sh
:r !ls
```
expect: output
```txt
folder1
folder2
...
```
actual: output
```txt
Shell exit 1
E485: can not read file /tmp/nvimnokcRa/1
...
```
kernel: linux5.7
version: e033ca1c0c2ff8d1932137d2ed7354d003ad9cdc
interaction: none
context: run inside alacritty
behavior of bash: worksIon Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/855Calling an alias that uses the `export` builtin results in a pipeline expansi...2021-01-08T00:19:28ZVoidNoireCalling an alias that uses the `export` builtin results in a pipeline expansion error**Reproduction:**
```
# alias foo="export FOO='bar'"
# foo
```
**Expected behaviour:** executes `export FOO='bar'`.
**Actual behaviour:** fails with error:
```
ion: pipeline expansion error: unable to pipe inputs to alias: 'foo = expor...**Reproduction:**
```
# alias foo="export FOO='bar'"
# foo
```
**Expected behaviour:** executes `export FOO='bar'`.
**Actual behaviour:** fails with error:
```
ion: pipeline expansion error: unable to pipe inputs to alias: 'foo = export FOO='bar''
```
**Build information:**
```
# uname -a
Linux a 4.19.30_1 #1 SMP PREEMPT Wed Mar 20 09:17:21 UTC 2019 x86_64 GNU/Linux
# ion --version
ion 1.0.0-alpha (x86_64-unknown-linux-gnu)
rev fde4aff113a0c7690a158d55ff1798b6d1e91369
```
ion was built with rustc 1.31.0Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/470Multi-Dimensional Arrays?2021-06-01T11:22:46ZMichael Aaron Murphymmstick@pm.meMulti-Dimensional Arrays?Current proposed syntax, which should take advantage of the typed assignments feature.
```ion
$ let md_array:[[str]] = [[one two three][four five six][seven eight nine]]
$ echo md_array[0]
> one two three
$ echo mod_array[0][0]
> one
``...Current proposed syntax, which should take advantage of the typed assignments feature.
```ion
$ let md_array:[[str]] = [[one two three][four five six][seven eight nine]]
$ echo md_array[0]
> one two three
$ echo mod_array[0][0]
> one
```
# Roadmap
1) [ ] Merge `Key` and `Primitive` types as a `Key` enum
2) [ ] Make a new enum which holds data (and possible recursive inner types) for each `Key` enum variant
3) [ ] Fix `shell::assignment` and other important modules to reflect changes
[Roadmap due to evolve as time progresses]Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/546Implement Fork Keyword (#531 Required)2021-06-01T11:29:45ZMichael Aaron Murphymmstick@pm.meImplement Fork Keyword (#531 Required)Some may find a use for performing forks and redirecting their input/outputs. This can currently be done by creating functions, but perhaps an in-line syntax to emulate anonymous functions would also be desirable. Therefore, we should su...Some may find a use for performing forks and redirecting their input/outputs. This can currently be done by creating functions, but perhaps an in-line syntax to emulate anonymous functions would also be desirable. Therefore, we should support a fork syntax that states it's intent clearly. As such, this is my proposed syntax, with an example of how the fork could perform redirection:
```sh
cat FILE | fork
first_command args... | second_command
end >> LOG
```
The fork keyword could be collected and treated internally as a function, and re-use the existing code for executing functions, with a few minor changes. However, this cannot be implemented without first implementing #531 and #566.Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/482Make distinction between value types within Ion2021-06-01T11:41:22ZMichael Aaron Murphymmstick@pm.meMake distinction between value types within Ion*Created by: huntergoldstein*
# Problem
Everything is, by default, an `Array` when expanding strings. For example, the expression
```
$(foo bar baz)
```
is supposed to expand to a string, but currently this expands to a one element arra...*Created by: huntergoldstein*
# Problem
Everything is, by default, an `Array` when expanding strings. For example, the expression
```
$(foo bar baz)
```
is supposed to expand to a string, but currently this expands to a one element array. There are plenty of other similar cases, for example `""` expanding to the empty array versus the empty string.
# Solution
Introduce a true value type, something like:
```
enum Value {
String(SmallString)
Array(SmallVec<Value>)
}
```
# Considerations
- Expressions such as `foo @bar`, where `bar = [0 1 2 ...]` currently expand to `foo 0 1 2 ...` with each element of `bar` becoming an argument to `foo` and `foo "@bar"` for passing `bar` itself as an argument.
- Perhaps we have explicit array passing here with `foo [@bar]`
- Typed function arguments: do we want to add `bool` and `int` types? Also see #480.Ion Shell v1.0.0Michael Aaron Murphymmstick@pm.meMichael Aaron Murphymmstick@pm.mehttps://gitlab.redox-os.org/redox-os/ion/-/issues/964Missing man page for ion2021-06-01T12:28:47ZAndrew PennebakerMissing man page for ionThe manual doesn't seem to say whether ion takes `-n` to check syntax, `-c` to run one-off commands and exit, `-h`, `--version`, or other common flags. Which flags exactly are supported?
Could we get a conventional man page, esp. for Li...The manual doesn't seem to say whether ion takes `-n` to check syntax, `-c` to run one-off commands and exit, `-h`, `--version`, or other common flags. Which flags exactly are supported?
Could we get a conventional man page, esp. for Linux users to lookup such information?Ion Shell v1.0.0