Macros are awesome!
http://scalamacros.org/paperstalks/2014-02-04-WhatAreMacrosGoodFor.pdf
So let's go write some :)
- This workshop is a down-to-earth live coding session
- No philosophical discussions: for that check out "Macros vs Types" and "Philosophy of Scala Macros"
- No plans for the future: for that check out "Rethinking Scala Macros" and the upcoming "Easy Metaprogramming For Everyone"
Our plan for today
- Macro-based optimizers
- Implicit materializers
We'll be using Scala 2.11.x with all the new goodies including quasiquotes and macro bundles, but we'll also spend some time discussing 2.10.x compatibility.
Things that we'll leave out
- Macro-based languge virtualization that was elaborated on in "Yin-Yang: Transparent Deep Embedding of DSLs" and "An Embedded Query Language in Scala"
- Type providers that were outlined in "Macro-Based Type Providers in Scala" and the accompanying code repository for that talk
- Macro annotations that were also presented in "Macro-Based Type Providers in Scala"
- String interpolation macros that will be covered at ScalaDays: "Quote Or Be Quoted"
Let's get started!
Macro-based optimizers, hygiene and owner chains: /tree/part1