Skip to content

rip-lang/rip

Repository files navigation

         _            _          _
        /\ \         /\ \       /\ \
       /  \ \        \ \ \     /  \ \
      / /\ \ \       /\ \_\   / /\ \ \
     / / /\ \_\     / /\/_/  / / /\ \_\
    / / /_/ / /    / / /    / / /_/ / /
   / / /__\/ /    / / /    / / /__\/ /
  / / /_____/    / / /    / / /_____/
 / / /\ \ \  ___/ / /__  / / /
/ / /  \ \ \/\__\/_/___\/ / /
\/_/    \_\/\/_________/\/_/

What is Rip

Rip is a general purpose programming language. It is a functional language with an object-oriented syntax. All objects are immutable, so it might help to think of objects as collections of partially-applied functions.

Development Status

In progress. Use at your own risk. Nothing works yet!

License

Rip is released under the MIT license. Please see LICENSE.markdown for more details.

(Planned) Features

  • no globals (except for a short list of pre-defined references)
  • robust object literal syntax for many constructs, including date/time and unit values
  • lexical scoping
  • type inference
  • static name resolution
  • tail call optimization
  • lazy iteration
  • first-class types and lambdas (types and lambdas may be passed around and assigned to references/properties just like any other object)
  • multiple inheritance (super types are flattened into a simple list of ancestors when a new type is defined)
  • implicit returns from last statement in a block or module
  • qualified imports via System.require (uses load path)
  • exception handling
  • pattern matching

Getting Started

Rip is currently implemented as an interpreter written in Ruby. Likely any recent version will due. Eventually Rip will be implemented as a front-end for LLVM (implemented in itself).

Quick start (users):

  1. Download an appropriate prepackaged executable from the release page. 0. If a download isn't available for your platform, try following the contributer instructions below.
  2. Extract the archive somewhere, like ~/bin/rip.
  3. The rip executable will be in ~/bin/rip, so you'll want to add that directory to your $PATH.
  4. $ rip help

Quick start (contributers):

  1. Install Ruby 2. I use rbenv and ruby-build, but use whatever floats your boat. 0. Rip uses Traveling Ruby to provide all-in-one packages, so you should install the version specified in .ruby-version.
  2. $ git clone git://github.com/rip-lang/rip.git
  3. $ cd rip
  4. $ bundle install
  5. $ ./bin/rip help

Getting Help

If you find a bug or have any other issue, please open a ticket. You should include as many details as reasonably possible, such as operating system, Ruby version (ruby --version), the Rip source code that broke et cetera.

Contributing

Patches are most welcome! Please make changes in a feature branch that merges into master cleanly. Existing tests should not break, and new code needs new tests.

Badges!

Code Climate GPA Coveralls Coverage Status Gemnasium Dependency Status Travis Build Status MIT License

About

An object-oriented programming language that thinks functionally

Resources

License

Stars

Watchers

Forks

Packages

No packages published