redox-os issueshttps://gitlab.redox-os.org/groups/redox-os/-/issues2021-08-31T08:28:31Zhttps://gitlab.redox-os.org/redox-os/ion/-/issues/998vi-mode: `e` does not work properly2021-08-31T08:28:31Zmseravallivi-mode: `e` does not work properlyin VI normal mode the `e` navigation does not work properly, it misses the last character.
How to reproduce:
```
[input from keyboard: ESC i l o r e m SPACE i p s u m]
$ lorem ipsum
[input from keyboard: ESC 0 d e]
$ m ipsum
```
Exp...in VI normal mode the `e` navigation does not work properly, it misses the last character.
How to reproduce:
```
[input from keyboard: ESC i l o r e m SPACE i p s u m]
$ lorem ipsum
[input from keyboard: ESC 0 d e]
$ m ipsum
```
Expected result ` ipsum`
This happens as well if I try to change the word:
```
[input from keyboard: ESC i l o r e m SPACE i p s u m]
$ lorem ipsum
[input from keyboard: ESC 0 c e h e l l o]
$ hellom ipsum
```
Expected result `hello ipsum`Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/982Fish-like syntax highlighting2020-12-12T21:59:39Zcinerea0Fish-like syntax highlightingCurrently, ion features fish-like autosuggestions (I've raised [an issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/971) about disabling those, but that's beside the point). Another cool feature from fish is syntax highlighting t...Currently, ion features fish-like autosuggestions (I've raised [an issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/971) about disabling those, but that's beside the point). Another cool feature from fish is syntax highlighting that occurs when typing; [this is also possible in zsh](https://github.com/zsh-users/zsh-syntax-highlighting) by hooking into the Zsh Line Editor. Is this planned as a direct feature for ion, and if not, is there a plan to indirectly allow it in a similar way to zsh?Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/968packaging(ppa): The repository does not have a Release file2021-06-02T19:25:28ZRyan Johnsonryan.johnson.code@gmail.compackaging(ppa): The repository does not have a Release filePopShop fails to update after registering the ppa:
```
E: The repository 'http://ppa.launchpad.net/mmstick76/ion-shell/ubuntu focal Release' does not have a Release file.
W: Updating from such a repository can't be done securely, and is ...PopShop fails to update after registering the ppa:
```
E: The repository 'http://ppa.launchpad.net/mmstick76/ion-shell/ubuntu focal Release' does not have a Release file.
W: Updating from such a repository can't be done securely, and is therefore disabled by default.
W: See apt-secure(8) manpage for repository creation and user configuration details
```
Pop!_OS 20.20LTSIon Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/967Multi-line strings in REPL not working2021-01-08T00:16:27ZAntonio Juan QuerolMulti-line strings in REPL not workingThanks for creating this nice and fast shell, I'm new and trying to use it, following the manual I arrive to this point:
[Multi-line strings](https://doc.redox-os.org/ion-manual/html/misc/05-multiline-strings.html) on issue #241 https:/...Thanks for creating this nice and fast shell, I'm new and trying to use it, following the manual I arrive to this point:
[Multi-line strings](https://doc.redox-os.org/ion-manual/html/misc/05-multiline-strings.html) on issue #241 https://gitlab.redox-os.org/redox-os/ion/issues/241, ii is implemebted for both rpl and scripting, but I use it with (starship), but I enanble and disable it, and I'm getting this error:
toni:~/learn/rust/ion# echo "This is first line
ion: syntax error: unterminated double quote
I tests it whith/without starship, inside emacs with vterm, and from an ion script(it works in this case):
![Captura_de_pantalla_2020-06-03_a_las_9.46.06__2_](/uploads/e9a81456912ebf8ff7c4ecaea34a6569/Captura_de_pantalla_2020-06-03_a_las_9.46.06__2_.png)Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/963bug: source-sh broken, improve documentation2020-12-16T00:59:25Zmaxice8bug: source-sh broken, improve documentationI'm trying to use `source-sh` to get some variables from an Alpine Linux APKBUILD into the environment of the Ion shell.
The APKBUILD looks like this:
```
# Contributor: dai9ah <dai9ah@protonmail.com>
# Maintainer: dai9ah <dai9ah@proto...I'm trying to use `source-sh` to get some variables from an Alpine Linux APKBUILD into the environment of the Ion shell.
The APKBUILD looks like this:
```
# Contributor: dai9ah <dai9ah@protonmail.com>
# Maintainer: dai9ah <dai9ah@protonmail.com>
pkgname=2bwm
pkgver=0.3
pkgrel=0
pkgdesc="Fast floating window manager"
url="https://github.com/venam/2bwm"
arch="all"
license="ISC"
makedepends="libxcb-dev xcb-util-keysyms-dev xcb-util-wm-dev xcb-util-xrm-dev"
options="!check" # no test suite
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/venam/2bwm/archive/v$pkgver.tar.gz"
prepare() {
default_prepare
sed -i Makefile -e "/CFLAGS/{s/+=-Os /+=/}"
}
build() {
make
}
package() {
make PREFIX=/usr DESTDIR="$pkgdir" install
}
sha512sums="088a97e5245287890c72e2b0685f7348a4cc0fd49582893b7ce7a081f80a4d7454a3c0eadf4609589314351ded02fd8b75548019b782e797350ad5db5c939f92 2bwm-0.3.tar.gz"
```
After sourcing it with `source-sh` i expect the variables in the root of the document to be accessible from Ion.Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/957Tracking Issue Shortcuts2020-12-12T22:18:57Zmatu3baTracking Issue ShortcutsList of necessary shortcuts (keypressing + alias)
#845
#934
#940
#951
List of (half)broken shortcuts
#907
#923
Improvements
#941
#930
#929
#928List of necessary shortcuts (keypressing + alias)
#845
#934
#940
#951
List of (half)broken shortcuts
#907
#923
Improvements
#941
#930
#929
#928Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/954Tracking Issue feature comparison to other command shells2020-12-12T22:20:14Zmatu3baTracking Issue feature comparison to other command shellsSince we aim for speed and reasonable simplicity, this tracks what feature the shell has in a comprehensive list shamelessly [copied from wikipedia](https://en.wikipedia.org/wiki/Comparison_of_command_shells).
Non-goals will be over tim...Since we aim for speed and reasonable simplicity, this tracks what feature the shell has in a comprehensive list shamelessly [copied from wikipedia](https://en.wikipedia.org/wiki/Comparison_of_command_shells).
Non-goals will be over time separated into a second table with free text.
This is a WIP for documentation and project oversight from a very general perspective and intended to be in the manual.
*General*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| Mouse support | copy/paste | | | |
| [[Unicode]] support | yes | | | |
| [[ISO 8601]] support | yes | | | |
| Console redirection | yes | | | |
| Stream redirection | yes | | | |
| Logging | yes | | | |
*Interactive*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| Completion: command name | yes | | | |
| Completion: path | yes | | | |
| Completion: command argument | - | | plan: shellac | |
| Completion: wildcard | - | | | |
| History commands | yes | | | |
| Automatic suggestions | yes | | plan: shellac | |
| Colored highlighting | - | | | |
| Text highlighting | - | | | |
| Syntax highlighting | - | | | |
| Directory history, stack etc | yes | | | |
| Implicit `cd` | yes | | | |
| Auto correction | - | | | |
| Integrated environment | - | | | |
| Snippets | - | | | |
| Value prompt | - | | | |
| options selector | - | | | |
| Progress indicator | - | | | |
| Context sensitive help | - | | | |
| Command builder | - | | | |
*Background execution*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| process tracking | - | | | |
*Programming*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| functions | yes | | | |
| exception handling | yes | | | |
| floating point | yes | | | |
| math function library | - | | | |
| linear array or lists | yes | | | |
| associative arrays | yes | | | |
| lambda functions | - | | | |
| eval functions | yes | | | |
*Strings and filenames*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| alternation | - | | | |
| build-in regex | - | | | |
| globbing qualifiers | - | | | |
| recursive globbing | - | | | |
*IPC*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| pipes | yes | | | |
| command substitution | yes | | | |
| process substitution | - | | | |
| subshells | - | | | |
| tcp/udp | - | | | |
| keystroke stacking | - | | | |
*Security*
| Feature | implemented | doc | integration tests | bug free |
| ---------------------------- | ---------- | ------ | ----------------- | -------- |
| secure password prompt | - | | | |
| encrypted variables | - | | | |
| file/directory passwords | - | | | |
| execute permissions | - | | | |
| untrusted script blocking | - | | | |
| restricted subshell set | - | | | |
| safe data subset | - | | | |
| stack smashing secured? | ? | | | |
| overflows possible? | ? | | | |
| reviewed? | ? | | | |Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/921Package install fails in Ubuntu 18.04 container2020-12-12T22:45:05ZColeman McFarlandPackage install fails in Ubuntu 18.04 containerI am not clear if this is supposed to be supported.
See [this dockerfile](https://gitlab.redox-os.org/coleman/ion-container/blob/master/Dockerfile.ubuntu-18.04-packaged) for the build steps I took.
This yields a dependency error:
```
...I am not clear if this is supposed to be supported.
See [this dockerfile](https://gitlab.redox-os.org/coleman/ion-container/blob/master/Dockerfile.ubuntu-18.04-packaged) for the build steps I took.
This yields a dependency error:
```
Step 5/5 : RUN apt-get install ion-shell -y
---> Running in 9e7eb31aac46
Reading package lists...
Building dependency tree...
Reading state information...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
ion-shell : Depends: libc6 (>= 2.29) but 2.27-3ubuntu1 is to be installed
```Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/920Official container builds2021-06-01T13:51:19ZColeman McFarlandOfficial container buildsShould we have official container builds for ion that live alongside our [other images](https://hub.docker.com/u/redoxos)? We could use docker, or another OCI container builder.
Benefits:
* Another way for interested folks to try ion.
*...Should we have official container builds for ion that live alongside our [other images](https://hub.docker.com/u/redoxos)? We could use docker, or another OCI container builder.
Benefits:
* Another way for interested folks to try ion.
* Test environments for ion's debian packages (and redhat, and alpine...)
* The ability to use `image: redoxos/ion:0.x.x` in _other_ CI jobs, so we can dogfood more ion scripts for automation
Drawbacks:
* builds taking up resources on the serverIon Shell v1.0.0matu3bamatu3bahttps://gitlab.redox-os.org/redox-os/ion/-/issues/913No expected practices documentation for startup2020-12-12T22:51:57ZSteven PeaseNo expected practices documentation for startupGetting ion set up as my default shell.
I couldn't find a "best practices" / "expected practices" documentation for startup scripts. Eg equivalents of .profile, .bashrc, .bash_profile, etc. For now I've just been putting everything in t...Getting ion set up as my default shell.
I couldn't find a "best practices" / "expected practices" documentation for startup scripts. Eg equivalents of .profile, .bashrc, .bash_profile, etc. For now I've just been putting everything in the initrc file.
Thanks!Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/910Nicer error messages2021-07-18T05:53:40ZDiego GanglNicer error messagesRight now, Ion throws error messages like this:
```ion: pipeline execution error: command exec error: Permission denied (os error 13)```
While they are correct and tell you what the problem is, they could be more polished like rustc's e...Right now, Ion throws error messages like this:
```ion: pipeline execution error: command exec error: Permission denied (os error 13)```
While they are correct and tell you what the problem is, they could be more polished like rustc's errors (I'm only talking about the interactive prompt in this case).
### No permissions
```
You don't have permission to open [FILE]. The owner is [USER].
Permissions are: rw--x---
```
### Executables that can't be run
If it doesn't have any exec permissions:
```
Can't run [FILE]. It's not an executable.
Try running chmod +x [FILE].
```
If it has one, but we can't run it:
```
[FILE] is an executable but you don't have permission to run it.
The owner is [USER]. Permissions are: rwx-w---
Try running chmod +x [FILE].
```
### Command not found
```Command not found: pyothn. Did you mean "python"?```
If the command ends with a forward slash, it's a path not a command. The error should be more like:
```Directory not found```Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/900"help" builtin command prints garbage2020-12-12T22:59:12Zngirard"help" builtin command prints garbagetyping `help` gives
```
fnhelpjobsreaddirsends-withexistspushdtestdisowndroptypesetexitisunaliasisattybghistorycalckeybindingsrandomsuspendstarts-withaliastrueboolcontainseqstatuspopdsourcewhichfalsefgmatchescdevalechowaitexec
```typing `help` gives
```
fnhelpjobsreaddirsends-withexistspushdtestdisowndroptypesetexitisunaliasisattybghistorycalckeybindingsrandomsuspendstarts-withaliastrueboolcontainseqstatuspopdsourcewhichfalsefgmatchescdevalechowaitexec
```Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/886Replace method does not consider strings of zero length to be an input2021-03-18T17:21:54ZMichael Aaron Murphymmstick@pm.meReplace method does not consider strings of zero length to be an inputThis currently gives an error about needing an extra argument
```
echo $replace("foobar" "bar" "")
```This currently gives an error about needing an extra argument
```
echo $replace("foobar" "bar" "")
```Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/880Multiple LHS values with indexing using math assignment operates on entire array2020-12-12T23:10:27ZRoland KovácsMultiple LHS values with indexing using math assignment operates on entire array* ion revision: 04f7be9
* expected behavior: indexed assignment only applies to the index position.
```
$ let a:[int] = [0 0 0]
$ let b:int = 0
$ let a[1] b += 1 1
$ echo @a
1 1 1 # [0 1 0] expected
$ echo $b
1
```* ion revision: 04f7be9
* expected behavior: indexed assignment only applies to the index position.
```
$ let a:[int] = [0 0 0]
$ let b:int = 0
$ let a[1] b += 1 1
$ echo @a
1 1 1 # [0 1 0] expected
$ echo $b
1
```Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/877Is ion language embeddable into Rust?2020-12-12T23:02:21ZDieter KonradIs ion language embeddable into Rust?Like lua in c?Like lua in c?Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/857Tracking Issue: Fast math roadmap2021-06-01T11:49:38ZAdminXVIITracking Issue: Fast math roadmapMath is currently too slow. Proposed roadmap:
- [x] Default to integer, rather than float
- [ ] Store the types, rather than parsing back and forth
- [x] Use lexical for parsing, rather than the stdlibMath is currently too slow. Proposed roadmap:
- [x] Default to integer, rather than float
- [ ] Store the types, rather than parsing back and forth
- [x] Use lexical for parsing, rather than the stdlibIon Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/828Process hang with subshell2019-02-09T00:07:39ZMichael Aaron Murphymmstick@pm.meProcess hang with subshellStumbled across an issue that can cause ion to hang:
```
for src in src crates/*; echo $(echo -e "### $src\n ```\n$(tokei $src)\n```"); end
```
It doesn't always happen, but this will usually happen after the second attempt.Stumbled across an issue that can cause ion to hang:
```
for src in src crates/*; echo $(echo -e "### $src\n ```\n$(tokei $src)\n```"); end
```
It doesn't always happen, but this will usually happen after the second attempt.Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/805Easy substring removal2023-03-10T13:53:44ZColeman McFarlandEasy substring removalI want to use ion to parse a config that looks like this, where the unique name given before the underscore `_`
is treated as part of a set.
```sh
HOST1_USERFILE=cloud-config/one.yml
HOST1_OS=ubuntu_18_04
HOST1_FACILITY=sjc1
HOST2_USE...I want to use ion to parse a config that looks like this, where the unique name given before the underscore `_`
is treated as part of a set.
```sh
HOST1_USERFILE=cloud-config/one.yml
HOST1_OS=ubuntu_18_04
HOST1_FACILITY=sjc1
HOST2_USERFILE=cloud-config/two.yml
HOST2_OS=ubuntu_18_04
HOST2_FACILITY=sjc1
```
I am using hashmap as a set. The following doesn't _quite_ work, because the "" empty string is not treated as an argument to `@replace`.
```
let hosts:hmap[] = [ ]
let name = $replace("HOST1_USERFILE", "_USERFILE" "")
let hosts[$name] = $name
```
I could do use a space instead of empty string:
```
let name = $replace("HOST1_USERFILE", "_USERFILE" " ") # a space, inst
```
... but the space is preserved in the value of `$name`.
I could use trim #802 when it lands, but a dedicated substring removal method might be nice.Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/803Methods for hmap and bmap handling2021-06-01T12:30:15ZRoland KovácsMethods for hmap and bmap handlingAdd support for getting keys or key-value pairs from maps, as currently only values can be extracted.
```
@keys(map)
@entries(map)
```Add support for getting keys or key-value pairs from maps, as currently only values can be extracted.
```
@keys(map)
@entries(map)
```Ion Shell v1.0.0https://gitlab.redox-os.org/redox-os/ion/-/issues/779Tracking Issue: Supported Types For Type-Checking2021-06-01T12:00:24ZMichael Aaron Murphymmstick@pm.meTracking Issue: Supported Types For Type-CheckingWe should evaluate and expand upon our current set of supported types. Here's a basic set of what we could support:
- **[T]**: an array of like-values
- **str**: a string -- the default type
- **bool**: either `1` or `0`
- **float**: a ...We should evaluate and expand upon our current set of supported types. Here's a basic set of what we could support:
- **[T]**: an array of like-values
- **str**: a string -- the default type
- **bool**: either `1` or `0`
- **float**: a generic decimal of any size
- **int**: a generic integer of any size, which may be negative
- **i32**: 32-bit int
- **i64**: 64-bit int
- **i128**: 128-bit int
- **uint**: a generic integer of any size, which may not be negative
- **u32**: 32-bit uint
- **u64**: 64-bit uint
- **u128**: 128-bit uintIon Shell v1.0.0