Skip to content

levelplane/circa

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction
============

Circa is a programming language designed for live coding. Most programming languages
try to improve *what* you can express, with Circa we instead try to improve *how* you
create code.

Features
========

 - Code can be modified at runtime
 - State can be redefined at runtime, and is preserved across code changes
 - Changes can be made by any external program that can modify text files
 - Simple API for making code changes, enabling non-text methods for modifying code
 - Supports a round trip where compiled code can be unparsed back to source text,
   allowing runtime changes to be saved as text files.
 - Supports plugins (which themselves can be recompiled and reloaded at runtime)
 - Embeddable in a C/C++/Obj-C application

Implementation
==============

Some implementation details:

 - Implemented in C++
 - Interpreted execution. (some form of JIT is planned for the future)
 - Compiled code is stored in a normalized, unoptimized format
 - Static typing with a pervasive 'any' type. Supports simple type inferrence.
 - Cross-platform, primary platform is OSX

Current status
==============

This project is currently alpha-level. Curious people, or people interested in
hacking along, are welcome to try it out. People who want to use it for serious
projects, or people who don't like bugs, are recommended to wait for a beta release.

Building
========

Instructions for building on a Unixy system:

Make sure you have Python, Scons, and a C++ compiler installed.

From the project's root directory, run:

./make

which will produce a binary at build/circa

For building on Windows, see docs/building.md

Documentation
=============

Refer to the /docs folder.

Unless otherwise specified, the contents of this project are freely available to the
public under the MIT licence. See the LICENSE file for more information.

About

A programming language for live coding

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published