ion merge requestshttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests2018-10-15T23:58:05Zhttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests/866Interpret shebangs on redox2018-10-15T23:58:05ZjD91mZM2Interpret shebangs on redoxThis is no longer handled on the kernel side
![Screenshot](https://i.imgur.com/AeXFSfX.png)This is no longer handled on the kernel side
![Screenshot](https://i.imgur.com/AeXFSfX.png)https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1266Fix: Compile error because of new version of "calc" crate.2024-02-25T16:08:10ZFlorian NaumannFix: Compile error because of new version of "calc" crate.Before one could not install Ion shell locally.
Had to delete/rest Cargo.lock file so new status of "calc" crate
is recognized by the compiler aka showing the error.
Pin pointed "calc" crate version on latest commit for stability
**No...Before one could not install Ion shell locally.
Had to delete/rest Cargo.lock file so new status of "calc" crate
is recognized by the compiler aka showing the error.
Pin pointed "calc" crate version on latest commit for stability
**Note:** the job `redox` seems to fail to some linking error. Same seems to happen on other projects. See a job output of the project termion: https://gitlab.redox-os.org/redox-os/termion/-/jobs/42969https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1265Docs: documented soucring of another file2024-02-25T16:08:58ZFlorian NaumannDocs: documented soucring of another filehttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1264Documented the "and" and "or" builtin2024-02-25T16:10:27ZFlorian NaumannDocumented the "and" and "or" builtinIn Ion shell the usage of the builtin "and" and "or" was not apparent before.
This PR provides a explanation and example in the Ion Manual.
On top these two builtin received a respective integration test.In Ion shell the usage of the builtin "and" and "or" was not apparent before.
This PR provides a explanation and example in the Ion Manual.
On top these two builtin received a respective integration test.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1263Feature: method replace, replacen and regex_replace allow2023-11-08T16:27:26ZFlorian NaumannFeature: method replace, replacen and regex_replace allowSubstitution with an empty string as third argument now.
This can be used to remove found patterns in a string.
Relates to issue: https://gitlab.redox-os.org/redox-os/ion/-/issues/1028
Fixed some warningsSubstitution with an empty string as third argument now.
This can be used to remove found patterns in a string.
Relates to issue: https://gitlab.redox-os.org/redox-os/ion/-/issues/1028
Fixed some warningshttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1262Refactors: deactivated job linux:stable in gitlab CI2023-11-08T16:29:24ZFlorian NaumannRefactors: deactivated job linux:stable in gitlab CIReason: It always fails
See issue: https://gitlab.redox-os.org/redox-os/ion/-/issues/1027
All jobs now succeed after the changes by this pull requests.Reason: It always fails
See issue: https://gitlab.redox-os.org/redox-os/ion/-/issues/1027
All jobs now succeed after the changes by this pull requests.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1261feat: "pipefail" option makes pipe return error code if any non zero2023-04-26T19:04:09ZFlorian Naumannfeat: "pipefail" option makes pipe return error code if any non zeroInstead of last command.
Early exit error in pipeline also shows error code.
Document "pipefail" option in builtin.
This features was requested in the issue #1005
## Note
This behaves the same as in bash. All commands in the pipelin...Instead of last command.
Early exit error in pipeline also shows error code.
Document "pipefail" option in builtin.
This features was requested in the issue #1005
## Note
This behaves the same as in bash. All commands in the pipeline are executed before the error code is returned from the pipeline.
### Which command make up the error code of the pipeline
The 1. non zero code propagated is not necessarily the left most command which returned an error.
This due to the fact that ion shell right now does not keep track of the order of executed command in the pipeline.
Example: command1 | command2 | command3. command2 and command3 return a non zero code. It can happen command3 exits with an error earlier. So in this example the error code of the command3 is returned.
Changing that is outside of the scope of this PR.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1260fix: in terminator removed unsafe by expect on converting bytes into UTF8 str2023-04-17T14:28:44ZFlorian Naumannfix: in terminator removed unsafe by expect on converting bytes into UTF8 strReason: There is no sign that scripts for ion to parse are
properly checked if they contain valid UTF-8.
Documented the fact that the current lexing does only handle UTF-8
content.
Renamed module quotes to terminator which is the visib...Reason: There is no sign that scripts for ion to parse are
properly checked if they contain valid UTF-8.
Documented the fact that the current lexing does only handle UTF-8
content.
Renamed module quotes to terminator which is the visible concept for
outside code
Added unit tests for termination of arrays/subshellshttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1259fix: Removed not needed parameter as builtin map for statement lexing2023-04-17T14:28:24ZFlorian Naumannfix: Removed not needed parameter as builtin map for statement lexingThe parameter `buitins` of function parse was actually not used at all in file `lib/parser/statement/parse`.The parameter `buitins` of function parse was actually not used at all in file `lib/parser/statement/parse`.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1258fix: fixed warning by replacing deprecated criterion API2023-04-14T14:18:51ZFlorian Naumannfix: fixed warning by replacing deprecated criterion APIhttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1257fix: added unit test for let in grammar2023-04-12T17:16:29ZFlorian Naumannfix: added unit test for let in grammarremoved todos about needing a let test rewriteremoved todos about needing a let test rewritehttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1256feat: added test for terminator and todos about strange edge cases2023-04-12T17:15:08ZFlorian Naumannfeat: added test for terminator and todos about strange edge casesThe Struct Terminator is the 1. step for lexing ion source code.
I think that such elementary blocks should be validated in isolation via unit tests.
Unit test help to understand the behavior of the implementation.
Theses unit tests po...The Struct Terminator is the 1. step for lexing ion source code.
I think that such elementary blocks should be validated in isolation via unit tests.
Unit test help to understand the behavior of the implementation.
Theses unit tests point out that there some weird edge cases. These cases are documented in TODOs there.
A subsequent PR should fix those cases in my opinion.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1255fix: removed redundant termination of input string2023-04-12T17:14:26ZFlorian Naumannfix: removed redundant termination of input stringOn fn execute_command under file src/binary/mod.rs
Before Ion shell script would be splited for termination 2 times, one time needlessly.
## About CI
The job linux:stable of the CI of Ion fails with compiling error.
See this [issue](...On fn execute_command under file src/binary/mod.rs
Before Ion shell script would be splited for termination 2 times, one time needlessly.
## About CI
The job linux:stable of the CI of Ion fails with compiling error.
See this [issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/1027) for more details.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1254docs: moved msrv from clippy into Cargo.toml.2023-04-03T17:15:22ZFlorian Naumanndocs: moved msrv from clippy into Cargo.toml.Since rust 1.56.0 msrv is to be put into Cargo.toml
See https://doc.rust-lang.org/cargo/reference/manifest.html#the-rust-version-field
## About CI
The job linux:stable of the CI of Ion fails with compiling error.
See this [issue](http...Since rust 1.56.0 msrv is to be put into Cargo.toml
See https://doc.rust-lang.org/cargo/reference/manifest.html#the-rust-version-field
## About CI
The job linux:stable of the CI of Ion fails with compiling error.
See this [issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/1027) for more details.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1253feat: not found variable error now shows name of not found variable2023-04-03T17:14:47ZFlorian Naumannfeat: not found variable error now shows name of not found variableImproves debug experience for end users who write scripts.
Adjusted ion manual with error messages showing name of not found variables
# Purpose
It helps immensely in debugging to see which variable name is not found.
## About CI
The...Improves debug experience for end users who write scripts.
Adjusted ion manual with error messages showing name of not found variables
# Purpose
It helps immensely in debugging to see which variable name is not found.
## About CI
The job linux:stable of the CI of Ion fails with compiling error.
See this [issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/1027) for more details.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1252feat: invalid index/range and length of sequence are provided for out of boun...2023-04-03T17:09:21ZFlorian Naumannfeat: invalid index/range and length of sequence are provided for out of bounds error messsage to end user.# Purpose
Before the error message of out of bounds did only show that that index caused out of bounds.
I as end user would however like to know which index is not valid on which length of an array.
## Changes
I changed the error OutO...# Purpose
Before the error message of out of bounds did only show that that index caused out of bounds.
I as end user would however like to know which index is not valid on which length of an array.
## Changes
I changed the error OutOfBounds Variant on the enum ...::expansion::Error by 2 fields with length and index. These 2 fields are incorporated into the error message.
I also introduced a new error variant called InvalidRange for cases like @array[5..12] with array = [2 4] where start index is too big for the array.
## About CI
The job linux:stable of the CI of Ion fails with compiling error.
See this [issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/1027) for more details.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1251feat: phase one, converted simple make rules into bash scripts2023-11-08T16:29:49ZFlorian Naumannfeat: phase one, converted simple make rules into bash scripts# Purpose
This is the 1. phase for converting the make file rules to bash and rust. See this issue #1030 for more details.
## What I did
Removed clean and format rule from make file.
Appropriate cargo fmt command is in CONTRIBUTING.m...# Purpose
This is the 1. phase for converting the make file rules to bash and rust. See this issue #1030 for more details.
## What I did
Removed clean and format rule from make file.
Appropriate cargo fmt command is in CONTRIBUTING.md documented.
cargo clean is well known anyway.
Removed distclean rule from make file and moved to own bash script.
Also moved version rule into separate bash scripts.
Also moved install rule of make into bash scripts.
Removed uninstall rule entirely.
**Tested: Still builds and runs in redox os on this commit**
## About CI
The job linux:stable of the CI of Ion fails with compiling error.
See this [issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/1027) for more details.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1250fix: spaces between 1. Variable and opening parentheses, ignored for variable2023-03-21T20:13:29ZFlorian Naumannfix: spaces between 1. Variable and opening parentheses, ignored for variable# Purpose
See [issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/1021) .
## Fix
Now all spaces between opening parentheses, the arguments and the closing parentheses are ignored.
## About CI
The job linux:stable of the CI of...# Purpose
See [issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/1021) .
## Fix
Now all spaces between opening parentheses, the arguments and the closing parentheses are ignored.
## About CI
The job linux:stable of the CI of Ion fails with compiling error.
See this [issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/1027) for more details.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1249docs: note about builtin.md is generated by "make manual"2023-03-20T01:19:29ZFlorian Naumanndocs: note about builtin.md is generated by "make manual"The job linux:stable of the CI of Ion fails with compiling error.
See this [issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/1027) for more details.The job linux:stable of the CI of Ion fails with compiling error.
See this [issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/1027) for more details.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/1248feat: single integration test is selectable2023-03-20T01:20:46ZFlorian Naumannfeat: single integration test is selectable# Purpose of this PR
When working on new feature or bug, I want to debug/run a specific integration test related to the feature/bug. This PR adds the ability to run a specific integration test in ion.
## Note
Fixed warring for usage o...# Purpose of this PR
When working on new feature or bug, I want to debug/run a specific integration test related to the feature/bug. This PR adds the ability to run a specific integration test in ion.
## Note
Fixed warring for usage of xargs in run_examples.sh file
See stackoverflow post:
https://unix.stackexchange.com/questions/428310/problem-using-xargs-max-args-replace-with-default-delimiter
## About CI
The job linux:stable of the CI of Ion fails with compiling error.
See this [issue](https://gitlab.redox-os.org/redox-os/ion/-/issues/1027) for more details.