poetics
poetics copied to clipboard
The first *native* implementation of CoffeeScript on the Rubinius VM.
- What is Poetics?
A native implementation of CoffeeScript [1] that runs on the Rubinius VM [2].
Q. Whence comes the name Poetics?
A. Poetics is a partial anagram of the word CoffeeScript. It is also a nod to Jeremy Ashkenas, the author of CoffeeScript, and his interest in code as literature.
Q. Why a native implementation?
A. CoffeeScript is an interesting language in its own right. Rather than merely being a syntax layer on top of Javascript, and bound to expressing its semantics in those of Javascript, it deserves its own implementation. Many of the reasons to use CoffeeScript in Node.js would also apply to using this native implementation.
- License
Poetics is MIT licensed. See the LICENSE file.
- Installation
First, install Rubinius:
- Using RVM (http://rvm.beginrescueend.com).
rvm install rbx
- Or directly (http://rubini.us/doc/en/what-is-rubinius/).
Second, install Poetics:
rbx -S gem install poetics
- Running Poetics
Poetics provides a REPL for exploratory programming or runs CoffeeScript scripts.
rbx -S poetics -h
The REPL presently just parses code and returns an S-Expression representation:
$ rbx -S poetics
> 42
[:number, 42.0, 1, 1]
> "hello, y'all"
[:string, "hello, y'all", 1, 1]
>
To exit the REPL hit CTRL + d.
- Getting Help
Poetics is a work in progress. If you encounter trouble, please file an issue at https://github.com/brixen/poetics/issues
- Contributing
If you find Poetics interesting and would like to help out, fork the project on Github and submit a pull request.
- People
Poetics was created by Brian Ford (brixen) to force him to really learn Javascript and CoffeeScript.
- Credits
Jeremy has created an very interesting language in CoffeeScript. This implementation steals bits and pieces from other projects:
- Rubinius (https://github.com/rubinius/rubinius/)
- KPeg (https://github.com/evanphx/kpeg/)
- Atomy (https://github.com/vito/atomy/)
- Poison (https://github.com/brixen/poison/)
- Talon (https://github.com/evanphx/talon/)
[1] CoffeeScript (http://jashkenas.github.com/coffee-script/) [2] Rubinius (http://rubini.us)