ion merge requestshttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests2018-06-21T18:08:31Zhttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests/810Fix tab completions being funky2018-06-21T18:08:31ZjD91mZM2Fix tab completions being funkyhttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests/438Case statements are now implicitly ended2017-07-19T17:22:28ZMichael Aaron Murphymmstick@pm.meCase statements are now implicitly ended*Created by: huntergoldstein*
**Changes introduced by this pull request**:
- Instead of using `end` to signal the end of a case, case blocks are implicitly ended by either another `case` statement or the end of the `match` block.
**...*Created by: huntergoldstein*
**Changes introduced by this pull request**:
- Instead of using `end` to signal the end of a case, case blocks are implicitly ended by either another `case` statement or the end of the `match` block.
**Fixes**: Closes #414
**State**: Good to go!
**Other**: The description of #414 was "make end optional" but I figure we can just remove it altogether; thoughts?https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/615Add functions to manual2017-11-29T17:43:45ZMichael Aaron Murphymmstick@pm.meAdd functions to manual*Created by: AgustinCB*
My English can be very poor, so feel free to give me feedback on that.*Created by: AgustinCB*
My English can be very poor, so feel free to give me feedback on that.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/809Unify job control between Linux and Redox2018-06-23T02:50:15ZMichael Aaron Murphymmstick@pm.meUnify job control between Linux and RedoxCloses https://gitlab.redox-os.org/redox-os/ion/issues/783Closes https://gitlab.redox-os.org/redox-os/ion/issues/783https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/218Split Statements2017-03-03T21:05:20ZMichael Aaron Murphymmstick@pm.meSplit StatementsThis makes it possible to now write commands like so:
```fish
for index in $(seq 1 10); echo $index; end
```This makes it possible to now write commands like so:
```fish
for index in $(seq 1 10); echo $index; end
```https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/694Fix color code in setup.ion2018-02-16T18:25:30ZMichael Aaron Murphymmstick@pm.meFix color code in setup.ion*Created by: PigeonF*
Running `ion setup.ion build docs` failed with an error message about `09F` not being a valid color. The fix is simple, as the cause for this was only a small typo.*Created by: PigeonF*
Running `ion setup.ion build docs` failed with an error message about `09F` not being a valid color. The fix is simple, as the cause for this was only a small typo.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/663More Foreground Job Control Improvements2017-12-31T23:33:11ZMichael Aaron Murphymmstick@pm.meMore Foreground Job Control Improvements- Linux no longer requires the **errno** crate as a dependency
- The foreground field has been removed from the shell now that it is no longer needed
- Fork + exec no longer performs allocations within child of the fork
- Added a scr...- Linux no longer requires the **errno** crate as a dependency
- The foreground field has been removed from the shell now that it is no longer needed
- Fork + exec no longer performs allocations within child of the fork
- Added a script execution test
I'll be working on background job control next.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/659fix for issue #5852017-12-22T18:44:12ZMichael Aaron Murphymmstick@pm.mefix for issue #585*Created by: covercash2*
**Solution**:
the `level: u8` variable in the `Iterator::next` implementation for the `ArgumentSplitter` was being decremented when its value was 0, causing a panic (unsigned ints cannot be less than 0).
...*Created by: covercash2*
**Solution**:
the `level: u8` variable in the `Iterator::next` implementation for the `ArgumentSplitter` was being decremented when its value was 0, causing a panic (unsigned ints cannot be less than 0).
**Changes introduced by this pull request**
i assumed that `level` represented the depth of the parentheses, so i consolidated the handling of parentheses and added `level +=1` or `level -= 1` respectively.
i also refactored the raw bit flags to use the bitflags crate for a few reason:
1) the crate was already imported
2) it makes the code a lot more readable (to me at least)
3) it helped me understand the code
**Drawbacks**
i just assumed `level` was referring to the parenthesis level, but i could be wrong. if that's the case this pull request should be rejected.
https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/807Add super:: and global:: namespaces (Fix #480)2018-06-19T15:06:31ZjD91mZM2Add super:: and global:: namespaces (Fix #480)This treats each function as a new namespace. `if` statements for example still let you alter outer scopes like normal.
Note: `global::` will include stuff in outer if statements, e.g.
```ion
if test 1 == 1
let a = 1
fn ex...This treats each function as a new namespace. `if` statements for example still let you alter outer scopes like normal.
Note: `global::` will include stuff in outer if statements, e.g.
```ion
if test 1 == 1
let a = 1
fn example
echo "${global::a}"
end
example
end
```
Not sure if this is what you expected or not, but it's the most consistent with super.
EDIT: **WARNING: This does not apply to functions.** Is this what you wanted or should I revert the commit that excluded functions from this behavior?https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/805Implement Array Index Assignments2018-06-20T14:59:55Zstratactstratact1@gmail.comImplement Array Index Assignmentshttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests/680Synchronize Redox and Unix job_control2018-01-20T04:25:50ZJeremy SollerSynchronize Redox and Unix job_controlThis fixes job control on Redox and makes it look more like the Unix version. This also updates the lock file, which is necessary in order to use the wif* functions on Redox.This fixes job control on Redox and makes it look more like the Unix version. This also updates the lock file, which is necessary in order to use the wif* functions on Redox.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/804Array operations using SIMD2018-06-17T20:19:13ZjD91mZM2Array operations using SIMDImplements the fun parts of #778 so only the boring parts are left... Sorry...Implements the fun parts of #778 so only the boring parts are left... Sorry...https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/803Clean-up and refactor2018-06-17T08:32:57Zstratactstratact1@gmail.comClean-up and refactorClean-up and refactor by
* Removing tons of unneeded conversions
* Collapsing/condensing conditionals
* Using chars instead of strings
* Removing unneeded lifetime annotations
* Using `is_empty()` which is more concise than comparin...Clean-up and refactor by
* Removing tons of unneeded conversions
* Collapsing/condensing conditionals
* Using chars instead of strings
* Removing unneeded lifetime annotations
* Using `is_empty()` which is more concise than comparing to zero.
* Removing unneeded borrow patterns by deref'ing the matching expression
* Other performance enhancing code from good practiceshttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests/802Fix assignments errors for let and store exit status properly2018-06-17T08:20:21Zstratactstratact1@gmail.comFix assignments errors for let and store exit status properlyThis forces assignments errors when there are too many value or keys. Also this store the exit status of `let` and `export`. This assignment error output follows the RFC spec.This forces assignments errors when there are too many value or keys. Also this store the exit status of `let` and `export`. This assignment error output follows the RFC spec.https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/801Re-implement scopes2018-06-16T18:40:52ZjD91mZM2Re-implement scopesCons:
- We now use a heap allocated vector instead of keeping some kind of recursive type on the stack.
Pros:
- Code is easier to manage
- We can now re-use hashmaps which saves allocations
- No more refcells
- No more unsaf...Cons:
- We now use a heap allocated vector instead of keeping some kind of recursive type on the stack.
Pros:
- Code is easier to manage
- We can now re-use hashmaps which saves allocations
- No more refcells
- No more unsafe madness to avoid lifetime madness. Sanity everywhere!
Closes #726https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/800Derive `Debug` for most types but not all2018-06-16T19:13:35Zstratactstratact1@gmail.comDerive `Debug` for most types but not allThis is only deriving missing `Debug`s for most but not all types in Ion.
This will really help me solve bugs more efficiently in the future.
Building time comparisons:
Before:
```
% cargo build --release
Compiling ion-she...This is only deriving missing `Debug`s for most but not all types in Ion.
This will really help me solve bugs more efficiently in the future.
Building time comparisons:
Before:
```
% cargo build --release
Compiling ion-shell v1.0.0-alpha (file:///home/stratact/data/projects/cloned_git_repos/ion)
Finished release [optimized] target(s) in 1m 07s
```
After:
```
% cargo build --release
Compiling ion-shell v1.0.0-alpha (file:///home/stratact/data/projects/cloned_git_repos/ion)
Finished release [optimized] target(s) in 1m 07s
```
No changes in compile time.
Binary size comparision:
Before:
```
% ls -lh target/release/ion
-rwxr-xr-x 2 stratact stratact 5.3M Jun 15 22:23 target/release/ion
```
After:
```
% ls -lh target/release/ion
-rwxr-xr-x 2 stratact stratact 5.3M Jun 15 22:25 target/release/ion
```
No changes in binary size eitherhttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests/799Scopes RFC2020-04-23T03:15:53ZjD91mZM2Scopes RFCHope I did this correctly ¯\\\_(ツ)\_/¯Hope I did this correctly ¯\\\_(ツ)\_/¯https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/593Build for Redox on Travis2017-11-16T19:05:09ZIan Douglas ScottBuild for Redox on TravisI've been meaning to do this, but only recently took the time to install a Debian chroot and figure out an issue that was interfering with it (https://github.com/redox-os/libc/pull/43).
I've sent a similar PR to uutils: https://github...I've been meaning to do this, but only recently took the time to install a Debian chroot and figure out an issue that was interfering with it (https://github.com/redox-os/libc/pull/43).
I've sent a similar PR to uutils: https://github.com/uutils/coreutils/pull/1095https://gitlab.redox-os.org/redox-os/ion/-/merge_requests/798Manual: Mention behavior of scopes and functions2018-06-16T18:40:52ZjD91mZM2Manual: Mention behavior of scopes and functionshttps://gitlab.redox-os.org/redox-os/ion/-/merge_requests/797Have Ion support both dev and nightly builds of Rust2018-06-15T21:27:08Zstratactstratact1@gmail.comHave Ion support both dev and nightly builds of RustThis is so that people who build and use rustc from git upstream can also build Ion.This is so that people who build and use rustc from git upstream can also build Ion.