Git Product home page Git Product logo

scsh's Introduction

Scsh

Scsh is a unix shell embedded in Scheme. What does that mean? Well, unix shells are powerful tools. They allow a user to concisely specify her commands and the communications between them (piping, redirecting, &c.). When she needs to do something more complex than running a set of commands with known inputs, however, things become complicated. General programming with sh can be unpleasant and error prone, to say the least.

Scheme is a simple, expressive general programming language. A user with some taste may want to use it to wield her computing machine. For simple commands, however, it is not the most concise. At the scale of the command line, even the overhead of parentheses matters. It would be nice to use each of these languages where their strengths lie.

Scsh is the solution. It allows the user to write commands in a language within Scheme that follows the unix way, but also allows her to specify more complex commands with the elegance of Scheme.

Getting Started

Dependencies

In order to run scsh, you'll need to be running on a POSIX complient operating system, the gnu build system, and scheme48 1.9.2

Installing scheme48 1.9.2

If scheme48 1.9.2 is not available in a package manager for your operating system, follow the instructions for installing from the source distribution here http://www.s48.org/1.9.2/download.html.

Building scsh

Within a fresh checkout of scsh, run the following commands

$ git submodule update --init
$ autoreconf
$ ./configure
$ make

That'll pull all the scheme dependencies and build scsh. To try scsh before installing, run ./go from that same directory. That'll open up a repl with standard r5rs scheme in the environment, scsh's command language, and a large posix library (docs to come). To run scsh's test suite, run make test.

Installing scsh

Run make install to install scsh on your system. Standard gnu build system rules apply. So, for instance, if you'd like to install to a location other than the default (usually /usr/local/), rerun ./configure the appropriate flags.

scsh's People

Contributors

roderyc avatar nxg avatar jeffd avatar wfvining avatar

Watchers

Jianing Yang avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.