Skip to content
Snippets Groups Projects
Forked from redox-os / ion
726 commits behind the upstream repository.
  • AdminXVII's avatar
    c4383adb
    Switch to Rust 1.30.0 · c4383adb
    AdminXVII authored
    This is one step closer toward 1.32.0, where the 2018 edition is stable.
    Mostly refactoring the imports and giving function parameters name in traits
    c4383adb
    History
    Switch to Rust 1.30.0
    AdminXVII authored
    This is one step closer toward 1.32.0, where the 2018 edition is stable.
    Mostly refactoring the imports and giving function parameters name in traits

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.30.0 package.

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

Build dependencies

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

Distribution packagers must ensure that their distribution has packaged both cargo and rustc 1.30.0. Distribution packagers should also currently build Ion from git. Release tarballs have not been made yet due to the shell being incomplete in a few remaining areas.

Compile instructions

git clone https://gitlab.redox-os.org/redox-os/ion/
cd ion
make
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