From 5a59198afd1b3de77617623bbff6fe4e4f4a80da Mon Sep 17 00:00:00 2001 From: Michael Murphy <mmstickman@gmail.com> Date: Sun, 17 Jun 2018 11:14:17 -0600 Subject: [PATCH] Update README --- .github/ISSUE_TEMPLATE | 23 ------------ .github/PULL_REQUEST_TEMPLATE | 25 ------------ .travis.yml | 15 -------- .travis/redox-toolchain.sh | 7 ---- README.md | 71 ++++++----------------------------- 5 files changed, 11 insertions(+), 130 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE delete mode 100644 .github/PULL_REQUEST_TEMPLATE delete mode 100644 .travis.yml delete mode 100755 .travis/redox-toolchain.sh diff --git a/.github/ISSUE_TEMPLATE b/.github/ISSUE_TEMPLATE deleted file mode 100644 index f8285693..00000000 --- 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 be611fa3..00000000 --- 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 54349ae2..00000000 --- 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 83bc8fc4..00000000 --- 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 3172bf99..ac3d16c6 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 -- GitLab