# RubyMacros 0.1.4 Released

**URL:** <https://www.ruby-forum.com/t/rubymacros-0-1-4-released/168591>\
**Category:** Ruby\
**Created:** [May 22, 2009, 6:37pm UTC](https://www.ruby-forum.com/t/rubymacros-0-1-4-released/168591 "2009-05-22T18:37:29Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![pandemic](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/p/8491ac/32.png) [@pandemic](https://www.ruby-forum.com/u/pandemic)\
**Post date:** [May 22, 2009, 6:37pm UTC](https://www.ruby-forum.com/t/rubymacros-0-1-4-released/168591/1 "2009-05-22T18:37:29Z")

</div>

RubyMacros version 0.1.4 has been released!

- [http://github.com/coatl/rubymacros/](http://github.com/coatl/rubymacros/)
- [http://rubyforge.org/projects/rubymacros/](http://rubyforge.org/projects/rubymacros/)

RubyMacros is a lisp-like macro pre-processor for Ruby. More than just a  
purely textual substitution scheme, RubyMacros can manipulate and morph  
Ruby parse trees (in the form of RedParse Nodes) at parse time in just  
about  
any way you see fit. Macros are programmed in ruby itself.

Benefits:

- Powerful and easy metaprogramming
- Create better DSLs
- Manipulate syntax trees to suit yourself
- Access local variables and other caller context unavailable to  
methods
- Macros as inline methods: should be slightly faster than equivalent  
methods

Drawbacks:  
Although in theory already as powerful as lisp macros, the current  
implementation has a number of problems which added together make it  
merely  
a proof of concept or toy at this point:

- pre-processing is very, very slow (because of RedParse)
- macro calls must be inside some sort of method;
- straight out macro calls at the top level won’t work
- macros can’t have blocks or receivers
- some ruby syntax is unsupported in files using macros
- files using macros must be loaded via Macro.require;
- Kernel#require will not recognize macros
- macros cannot be scoped
- no variable (or other) hygiene

Changes:

### 0.1.4 / 2009-05-21

- 1 Major Enhancement:

- 1 Minor Enhancement:

- [http://github.com/coatl/rubymacros/](http://github.com/coatl/rubymacros/)

- [http://rubyforge.org/projects/rubymacros/](http://rubyforge.org/projects/rubymacros/)
