Skip to content
Branch: master
Clone or download
mmstick Merge branch 'hotfix-no-redox' into 'master'
🚑 Remove redox CI until the relibc issue is fixed

See merge request redox-os/ion!983
Latest commit a16f9af Apr 24, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
benches 📎 Apply clippy suggestions Apr 15, 2019
ci Fix tests for performance improvements Mar 26, 2019
debian ♻️ Replace failure-derive with err-derive Mar 28, 2019
examples Fallback to root scope & remove unsafe function calls Apr 20, 2019
fuzz Debian packaging support Oct 21, 2018
manual 📖 Update the Ion API manual Apr 14, 2019
members Add object-pool and auto-enums to enhance performance Apr 14, 2019
src Fallback to root scope & remove unsafe function calls Apr 20, 2019
testing Fix symlink May 4, 2017
.gitignore
.gitlab-ci.yml 🚑 Remove redox CI until the relibc issue is fixed Apr 24, 2019
CONTRIBUTING.md Fix typo in CONTRIBUTING.md Feb 11, 2019
Cargo.lock 🚑 Remove redox CI until the relibc issue is fixed Apr 24, 2019
Cargo.toml Expand a single dot to the current dir content Apr 15, 2019
LICENSE
Makefile ♻️ Replace failure-derive with err-derive Mar 28, 2019
README.md Update README.md Mar 20, 2019
build.rs Clippy and fmt Feb 15, 2019
redox_linker 📦 Update debian packaging Jan 24, 2019
rustfmt.toml Clippy and fmt Feb 15, 2019

README.md

Introduction

Ion is a modern system shell that features a simple, yet powerful, syntax. It is written entirely in Rust, which greatly increases the overall quality and security of the shell. It also offers a level of performance that exceeds that of Dash, when taking advantage of Ion's features. While it is developed alongside, and primarily for, RedoxOS, it is a fully capable on other *nix platforms.

Ion Shell

MIT licensed crates.io

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 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

The Ion manual is generated automatically on each commit via mdBook. The manual is located here 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.

Packages

Pop!_OS / Ubuntu

The following PPA supports the 18.04 (bionic) and 18.10 (cosmic) releases. Bionic builds were made using the Pop_OS PPA's rustc 1.31.0 package.

sudo add-apt-repository ppa:mmstick76/ion-shell

Developer set up

Those who are developing software with Rust should install the Rustup toolchain manager. After installing rustup, run rustup override set 1.31.0 to set your Rust toolchain to the version that Ion is targeting at the moment. To build for Redox OS, rustup override set nightly is required to build the Redox dependencies.

Build dependencies

Please ensure that both cargo and rustc 1.31.0 or higher is installed for your system. Release tarballs have not been made yet due to Ion being incomplete in a few remaining areas.

Compile instructions for distribution

git clone https://gitlab.redox-os.org/redox-os/ion/
cd ion
RUSTUP=0 make # By default RUSTUP equals 1, which is for developmental purposes
sudo make install prefix=/usr
sudo make update-shells prefix=/usr

To compile in DEBUG mode, pass DEBUG=1 as an argument to make

Vim/NeoVim Syntax Highlighting Plugin

We do have an officially-supported syntax highlighting plugin for all the vim/nvim users out there.

Plugin 'vmchale/ion-vim'

Screenshot of Syntax Highlighting

You can’t perform that action at this time.