diff --git a/.github/ISSUE_TEMPLATE b/.github/ISSUE_TEMPLATE deleted file mode 100644 index f828569377a6cbc00f13105ea38fec6996c4e4ef..0000000000000000000000000000000000000000 --- a/.github/ISSUE_TEMPLATE +++ /dev/null @@ -1,23 +0,0 @@ -**Reproduction**: <!--- describe how you are able to reproduce ("trigger") this bug/issue. --> - -**Expected behavior**: <!--- describe the behavior you would expect the repro to yield. --> - -**Actual behavior**: <!--- describe the actual behavior, which is presented through the repro. .--> - -**Build information**: -<!--- output of `rustc -V`--> - -<!--- `git rev-parse HEAD` --> - -<!--- `qemu-i386 -version` --> - -<!--- `uname -a` --> - -<!--- `ion --version` --> - -**Blocking/related**: <!--- issues or PRs blocking or being related to this issue. --> - -**Misc**: <!--- optional: for other relevant information that should be known or cannot be described in the other fields. --> - - -<!--- _If the above does not fit the nature of the issue feel free to modify it._--> diff --git a/.github/PULL_REQUEST_TEMPLATE b/.github/PULL_REQUEST_TEMPLATE deleted file mode 100644 index be611fa3e44c124b76de88eb39c29d6c580b9ca8..0000000000000000000000000000000000000000 --- a/.github/PULL_REQUEST_TEMPLATE +++ /dev/null @@ -1,25 +0,0 @@ -**Problem**: [describe the problem you try to solve with this PR.] - -**Solution**: [describe carefully what you change by this PR.] - -**Changes introduced by this pull request**: - -- [...] -- [...] -- [...] - -**Drawbacks**: [if any, describe the drawbacks of this pull request.] - -**TODOs**: [what is not done yet.] - -**Fixes**: [what issues this fixes.] - -**State**: [the state of this PR, e.g. WIP, ready, etc.] - -**Blocking/related**: [issues or PRs blocking or being related to this issue.] - -**Other**: [optional: for other relevant information that should be known or cannot be described in the other fields.] - ------- - -_The above template is not necessary for smaller PRs._ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 54349ae286dc997f0c016885d3c4fbed3aaf5bc8..0000000000000000000000000000000000000000 --- a/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -language: rust -rust: - - nightly -sudo: true -notifications: - email: false -env: - - REDOX= - # - REDOX=1 CC=x86_64-unknown-redox-gcc CARGO_ARGS='--target=x86_64-unknown-redox' -before_install: - - if [ $REDOX ]; then ./.travis/redox-toolchain.sh; fi -script: - - cargo build $CARGO_ARGS - - if [ ! $REDOX ]; then cargo test; fi - - if [ ! $REDOX ]; then bash examples/run_examples.sh; fi diff --git a/.travis/redox-toolchain.sh b/.travis/redox-toolchain.sh deleted file mode 100755 index 83bc8fc4523be11d2b986205c33b4ea983f77584..0000000000000000000000000000000000000000 --- a/.travis/redox-toolchain.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -rustup target add x86_64-unknown-redox -sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA12E97F0881517F -sudo add-apt-repository 'deb https://static.redox-os.org/toolchain/apt /' -sudo apt-get update -qq -sudo apt-get install -y x86-64-unknown-redox-gcc diff --git a/README.md b/README.md index 3172bf9912725a704c8d5cbe1d52c6df7d07716a..ac3d16c6f83639932947f1aeaf8c8facfb43a6a2 100644 --- a/README.md +++ b/README.md @@ -7,59 +7,26 @@ is developed alongside, and primarily for, RedoxOS, it is a fully capable on oth # Ion Shell -[](https://travis-ci.org/redox-os/ion) [](./LICENSE) [](https://crates.io/crates/ion-shell) - > Ion is still a WIP, and both its syntax and rules are subject to change over time. It is > still quite a ways from becoming stabilized, but we are getting very close. Changes to the > syntax at this time are likely to be minimal. +# Ion Specification + +Ion has a RFC process for language proposals. Ion's formal specification is located within the +[rfcs](https://gitlab.redox-os.org/redox-os/ion/tree/rfcs) branch. The RFC process is still in +the early stages of development, so much of the current and future implementation ideas have +yet to be written into the specification. + # Ion Manual -We are providing our manual for Ion in the form of a markdown-based book, which is accessible via: - -- The official page for Ion's manual on Redox's website: https://doc.redox-os.org/ion-manual/ -- Installing the mdbook via our `setup.ion` script and having Ion open an offline copy via `ion-docs`. -- Building and serving the book in the **manual** directory yourself with [mdBook](https://github.com/azerupi/mdBook) - -> Note, however, that the manual is incomplete, and does not cover all of Ion's functionality -> at this time. Anyone willing to help with documentation should simply do so and submit a pull -> request. If you have any questions regarding certain implementation details, feel free to -> ask in whichever venue you are most comfortable with. - -# Goals - -Syntax and feature decisions for Ion are made based upon three measurements: is the feature useful, -is it simple to use, and will its implementation be efficient to parse and execute? A feature is -considered useful if there's a valid use case for it, in the concept of a shell language. The -syntax for the feature should be simple for a human to read and write, with extra emphasis on -readability, given that most time is spent reading scripts than writing them. The implementation -should require minimal to zero heap allocations, and be implemented in a manner that requires -minimal CPU cycles (so long as it's also fully documented and easy to maintain!). - -It should also be taken into consideration that shells operate entirely upon strings, and therefore -should be fully equipped for all manner of string manipulation capabilities. That means that users -of a shell should not immediately need to grasp for tools like **cut**, **sed**, and **awk**. Ion -offers a great deal of control over slicing and manipulating text. Arrays are treated as first -class variables with their own unique **@** sigil. Strings are also treated as first class -variables with their own unique **$** sigil. Both support being sliced with **[range]**, and they -each have their own supply of methods. - -# Why Not Windows Support? - -Windows is not, and may never be supported due to certain limitations in the NT kernel. Namely, -where in all non-Windows operating systems, the kernel takes an array of strings that defines -the command to execute, and all of that command's arguments; Windows instead takes a single -string that contains both the command and all of its arguments. This pushes the job of parsing -arguments from the system shell onto the individual program, and may account for why the command-line -in Windows is so funky. - -In addition, Windows does not support forking, a concept by which a new sub-process is spawned with -the same state as the parent, for the purpose of continuing execution down a different path from the -parent. This enables for subshells to be spawned, as commonly seen by process expansions (**$()**), -among piping builtins and functions. +The Ion manual is generated automatically on each commit via [mdBook](https://github.com/azerupi/mdBook). +The manual is located [here](https://doc.redox-os.org/ion-manual/) on Redox OS's website. It is +also included in the source code for Ion, within the **manual** directory, which you may build +with **mdbook**. # Compile / Install Instructions @@ -82,22 +49,6 @@ git clone https://gitlab.redox-os.org/redox-os/ion/ cd ion && cargo +nightly build --release ``` -# Git Plugin - -Plugins support within Ion is still a work in progress, and so the plugin architecture is likely to change. That said, -there's an official git plugin that can be installed to experiment with the existing plugin namespaces plugin support. -To install the git plugin, first install ion, and then execute the following: - -```ion -./setup.ion install plugins -``` - -It can be tested out by navigating to a directory within a git repository, and running the following: - -```ion -echo Current Branch: ${git::branch}${git::modified_count}${git::untracked_count} -``` - # Vim/NeoVim Syntax Highlighting Plugin We do have an [officially-supported syntax highlighting plugin](https://gitlab.redox-os.org/redox-os/ion-vim) for all the