Git Product home page Git Product logo

runa's Introduction

Runa

https://travis-ci.org/djc/runa.svg?branch=master https://img.shields.io/coveralls/djc/runa.svg?branch=master Join the chat at https://gitter.im/djc/runa

A Python-like systems programming language. This means that the design borrows as much from Python as makes sense in the context of a statically-typed, compiled language, and tries to apply the Zen of Python to everything else. The most important design goals for Runa are developer ergonomics and performance. The compiler is written in Python and targets LLVM IR; there's no run-time. More information, including a project rationale, can be found on the project website.

Note: this is pre-alpha quality software. Use at your own peril.

All feedback welcome. Feel free to file bugs, requests for documentation and any other feedback to the issue tracker, tweet me or join the #runa channel on freenode.

Installation

Dependencies:

  • Python 2.7 or 3.3 (3.4 probably works as well)
  • rply (tested with 0.7.2)
  • Clang (tested with 3.3 and later)

The compiler is being tested on 64-bits OS X and Linux and 32-bits Linux.

Preliminary testing has been done on 64-bit Windows 7 as well. This seems to work okay when compiling against mingw-w64, although the test suite fails because newlines get rewritten to \r\n when using write() with stdout. Compiling against the MS platform libs has been tried (through clang-cl), but I have not yet been able to fix all the undefined symbol errors.

How to get started

Type the following program into a file called hello.rns:

def main():
    print('hello, world')

Make sure to use tabs for indentation. Now, run the compiler to generate a binary, then run it:

djc@enrai runa $ ./runa compile hello.rns
djc@enrai runa $ ./hello
hello, world

Review the test cases in tests/ for other code that should work.

runa's People

Contributors

djc avatar garybernhardt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

runa's Issues

Request for rationale

Hi! It seems interesting, but the documentation is so sparse that I can't tell!

Can you write a "rationale", i.e. extend "A Python-like systems programming language" with use-cases, advantages, etc. Something in the style of http://clojure.org/rationale

I've been working on my own lang also, compiling to js and C. It is called "LiteScript" and is like having the javascript core (dynamic+prototypal inh.+higher order fns) but with python-like "indentation is significant" and proper classes. Check it at: https://github.com/luciotato/LiteScript

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.