liufengyun / gestalt

gestalt : portable and solid macros for Scala
https://github.com/scalacenter/macros
31 stars 3 forks source link

Gestalt Build Status

An experiment and tutorial on how to create a solid and portable macros system based on solid methodology and principles.

Design Goals:

Examples

import scala.gestalt._

object Test {
  def plus(a: Int, b: Int): Int = meta {
    q"$a + $b"
  }
}

Design

Philosophy

The design space of a macro system is large. Gestalt aims to be simple, solid and portable for the 80% common use cases.

a ) Assumptions on compiler implementation

b ) Assumptions on macro usage

c) Features

Test

Paper

Gestalt : The Road for Lightweight Portable Macros