From 1207383551b429560ac05e124349b24ff8b6dfda Mon Sep 17 00:00:00 2001 From: Jon Pretty Date: Tue, 7 Nov 2017 00:55:36 +0000 Subject: Benchmarking suite --- benchmarks/2.11/benchmark | 22 +++++ benchmarks/2.11/src/adt.scala | 43 +++++++++ benchmarks/2.11/src/kittens/complex.scala | 28 ++++++ benchmarks/2.11/src/kittens/eq_10.scala | 18 ++++ benchmarks/2.11/src/kittens/eq_50.scala | 63 +++++++++++++ benchmarks/2.11/src/kittens/gadt_100.scala | 118 ++++++++++++++++++++++++ benchmarks/2.11/src/kittens/obj.scala | 118 ++++++++++++++++++++++++ benchmarks/2.11/src/kittens/show_10.scala | 18 ++++ benchmarks/2.11/src/kittens/show_50.scala | 63 +++++++++++++ benchmarks/2.11/src/kittens/show_tree_50.scala | 63 +++++++++++++ benchmarks/2.11/src/kittens/small_100.scala | 118 ++++++++++++++++++++++++ benchmarks/2.11/src/magnolia/complex.scala | 24 +++++ benchmarks/2.11/src/magnolia/eq_10.scala | 14 +++ benchmarks/2.11/src/magnolia/eq_50.scala | 59 ++++++++++++ benchmarks/2.11/src/magnolia/gadt_100.scala | 113 +++++++++++++++++++++++ benchmarks/2.11/src/magnolia/obj.scala | 114 +++++++++++++++++++++++ benchmarks/2.11/src/magnolia/show_10.scala | 14 +++ benchmarks/2.11/src/magnolia/show_50.scala | 58 ++++++++++++ benchmarks/2.11/src/magnolia/show_tree_50.scala | 58 ++++++++++++ benchmarks/2.11/src/magnolia/small_100.scala | 113 +++++++++++++++++++++++ benchmarks/2.12/benchmark | 22 +++++ benchmarks/2.12/src/adt.scala | 43 +++++++++ benchmarks/2.12/src/kittens/complex.scala | 28 ++++++ benchmarks/2.12/src/kittens/eq_10.scala | 18 ++++ benchmarks/2.12/src/kittens/eq_50.scala | 63 +++++++++++++ benchmarks/2.12/src/kittens/gadt_100.scala | 118 ++++++++++++++++++++++++ benchmarks/2.12/src/kittens/obj.scala | 118 ++++++++++++++++++++++++ benchmarks/2.12/src/kittens/show_10.scala | 18 ++++ benchmarks/2.12/src/kittens/show_50.scala | 63 +++++++++++++ benchmarks/2.12/src/kittens/show_tree_50.scala | 63 +++++++++++++ benchmarks/2.12/src/kittens/small_100.scala | 118 ++++++++++++++++++++++++ benchmarks/2.12/src/magnolia/complex.scala | 24 +++++ benchmarks/2.12/src/magnolia/eq_10.scala | 14 +++ benchmarks/2.12/src/magnolia/eq_50.scala | 59 ++++++++++++ benchmarks/2.12/src/magnolia/gadt_100.scala | 113 +++++++++++++++++++++++ benchmarks/2.12/src/magnolia/obj.scala | 114 +++++++++++++++++++++++ benchmarks/2.12/src/magnolia/show_10.scala | 14 +++ benchmarks/2.12/src/magnolia/show_50.scala | 58 ++++++++++++ benchmarks/2.12/src/magnolia/show_tree_50.scala | 58 ++++++++++++ benchmarks/2.12/src/magnolia/small_100.scala | 113 +++++++++++++++++++++++ benchmarks/fetch.sh | 13 +++ 41 files changed, 2491 insertions(+) create mode 100755 benchmarks/2.11/benchmark create mode 100644 benchmarks/2.11/src/adt.scala create mode 100644 benchmarks/2.11/src/kittens/complex.scala create mode 100644 benchmarks/2.11/src/kittens/eq_10.scala create mode 100644 benchmarks/2.11/src/kittens/eq_50.scala create mode 100644 benchmarks/2.11/src/kittens/gadt_100.scala create mode 100644 benchmarks/2.11/src/kittens/obj.scala create mode 100644 benchmarks/2.11/src/kittens/show_10.scala create mode 100644 benchmarks/2.11/src/kittens/show_50.scala create mode 100644 benchmarks/2.11/src/kittens/show_tree_50.scala create mode 100644 benchmarks/2.11/src/kittens/small_100.scala create mode 100644 benchmarks/2.11/src/magnolia/complex.scala create mode 100644 benchmarks/2.11/src/magnolia/eq_10.scala create mode 100644 benchmarks/2.11/src/magnolia/eq_50.scala create mode 100644 benchmarks/2.11/src/magnolia/gadt_100.scala create mode 100644 benchmarks/2.11/src/magnolia/obj.scala create mode 100644 benchmarks/2.11/src/magnolia/show_10.scala create mode 100644 benchmarks/2.11/src/magnolia/show_50.scala create mode 100644 benchmarks/2.11/src/magnolia/show_tree_50.scala create mode 100644 benchmarks/2.11/src/magnolia/small_100.scala create mode 100755 benchmarks/2.12/benchmark create mode 100644 benchmarks/2.12/src/adt.scala create mode 100644 benchmarks/2.12/src/kittens/complex.scala create mode 100644 benchmarks/2.12/src/kittens/eq_10.scala create mode 100644 benchmarks/2.12/src/kittens/eq_50.scala create mode 100644 benchmarks/2.12/src/kittens/gadt_100.scala create mode 100644 benchmarks/2.12/src/kittens/obj.scala create mode 100644 benchmarks/2.12/src/kittens/show_10.scala create mode 100644 benchmarks/2.12/src/kittens/show_50.scala create mode 100644 benchmarks/2.12/src/kittens/show_tree_50.scala create mode 100644 benchmarks/2.12/src/kittens/small_100.scala create mode 100644 benchmarks/2.12/src/magnolia/complex.scala create mode 100644 benchmarks/2.12/src/magnolia/eq_10.scala create mode 100644 benchmarks/2.12/src/magnolia/eq_50.scala create mode 100644 benchmarks/2.12/src/magnolia/gadt_100.scala create mode 100644 benchmarks/2.12/src/magnolia/obj.scala create mode 100644 benchmarks/2.12/src/magnolia/show_10.scala create mode 100644 benchmarks/2.12/src/magnolia/show_50.scala create mode 100644 benchmarks/2.12/src/magnolia/show_tree_50.scala create mode 100644 benchmarks/2.12/src/magnolia/small_100.scala create mode 100755 benchmarks/fetch.sh (limited to 'benchmarks') diff --git a/benchmarks/2.11/benchmark b/benchmarks/2.11/benchmark new file mode 100755 index 0000000..df652b4 --- /dev/null +++ b/benchmarks/2.11/benchmark @@ -0,0 +1,22 @@ +#!/bin/bash + +COUNT="$1" +shift + +benchmark() { + DERIVATION="$1" + TEST="$2" + echo "$DERIVATION/$TEST:" + echo "src/adt.scala" > .script + for I in $(seq 1 $COUNT); do + echo "src/$DERIVATION/$TEST.scala" >> .script + done + cat .script | scalac-2.11 -Xexperimental -Xresident -d bin -cp $(ls lib/* | tr '\n' :)bin | ts -i -s '%M:%.S' > out.log + cat out.log | tail -n +2 | paste -d' ' - .script | sed 's/nsc.//g' | head -n -1 + echo +} + +for J in "$@"; do + benchmark magnolia "$J" + benchmark kittens "$J" +done diff --git a/benchmarks/2.11/src/adt.scala b/benchmarks/2.11/src/adt.scala new file mode 100644 index 0000000..902d2d8 --- /dev/null +++ b/benchmarks/2.11/src/adt.scala @@ -0,0 +1,43 @@ +package adt + +sealed trait Tree +case class Leaf(value: String) extends Tree +case class Branch(left: Tree, right: Tree) extends Tree + +sealed trait GTree[+T] +case class GLeaf[+T](value: String) extends GTree[T] +case class GBranch[+T](left: GTree[T], right: GTree[T]) extends GTree[T] + +sealed trait Entity + +case class Company(name: String) extends Entity +case class Human(name: String, age: Int) extends Entity +case class Address(line1: String, occupant: Human) + +sealed trait Alphabet + +case class Greek(άλφα: Letter, βήτα: Letter, γάμα: Letter, δέλτα: Letter, έψιλον: Letter, ζήτα: Letter, ήτα: Letter, θήτα: Letter) extends Alphabet +case class Cyrillic(б: Letter, в: Letter, г: Letter, д: Letter, ж: Letter, з: Letter) extends Alphabet +case class Latin(a: Letter, b: Letter, c: Letter, d: Letter, e: Letter, f: Letter, g: Letter, h: Letter, i: Letter, j: Letter, k: Letter, l: Letter, m: Letter, n: Letter, o: Letter, p: Letter, q: Letter, r: Letter, s: Letter, t: Letter, u: Letter, v: Letter) extends Alphabet + +case class Letter(name: String, phonetic: String) +case class Country(name: String, language: Language, leader: Person, existence: DateRange) +case class Language(name: String, code: String, alphabet: Alphabet) +case class Person(name: String, dateOfBirth: Date) +case class Date(year: Int, month: Month, day: Int) + +case class DateRange(from: Date, toDate: Date) + +sealed trait Month +case object Jan extends Month +case object Feb extends Month +case object Mar extends Month +case object Apr extends Month +case object May extends Month +case object Jun extends Month +case object Jul extends Month +case object Aug extends Month +case object Sep extends Month +case object Oct extends Month +case object Nov extends Month +case object Dec extends Month diff --git a/benchmarks/2.11/src/kittens/complex.scala b/benchmarks/2.11/src/kittens/complex.scala new file mode 100644 index 0000000..70d0d95 --- /dev/null +++ b/benchmarks/2.11/src/kittens/complex.scala @@ -0,0 +1,28 @@ +import adt._ +import cats._ +import derived._ +import cats.Show +import cats.instances.all._ + +object Gen { + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] +} diff --git a/benchmarks/2.11/src/kittens/eq_10.scala b/benchmarks/2.11/src/kittens/eq_10.scala new file mode 100644 index 0000000..bed5915 --- /dev/null +++ b/benchmarks/2.11/src/kittens/eq_10.scala @@ -0,0 +1,18 @@ +import adt._ +import cats._ +import derived._ +import cats.Eq +import cats.instances.all._ + +object Gen { + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] +} diff --git a/benchmarks/2.11/src/kittens/eq_50.scala b/benchmarks/2.11/src/kittens/eq_50.scala new file mode 100644 index 0000000..cac774d --- /dev/null +++ b/benchmarks/2.11/src/kittens/eq_50.scala @@ -0,0 +1,63 @@ +import adt._ +import cats._ +import derived._ +import cats.Eq +import cats.instances.all._ + +object Gen { + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + +} diff --git a/benchmarks/2.11/src/kittens/gadt_100.scala b/benchmarks/2.11/src/kittens/gadt_100.scala new file mode 100644 index 0000000..aa6710d --- /dev/null +++ b/benchmarks/2.11/src/kittens/gadt_100.scala @@ -0,0 +1,118 @@ +import adt._ +import cats._ +import derived._ +import cats.eq +import cats.instances.all._ + +object Gen { + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + +} diff --git a/benchmarks/2.11/src/kittens/obj.scala b/benchmarks/2.11/src/kittens/obj.scala new file mode 100644 index 0000000..c01199e --- /dev/null +++ b/benchmarks/2.11/src/kittens/obj.scala @@ -0,0 +1,118 @@ +import adt._ +import cats._ +import derived._ +import cats.Show +import cats.instances.all._ + +object Gen { + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + +} diff --git a/benchmarks/2.11/src/kittens/show_10.scala b/benchmarks/2.11/src/kittens/show_10.scala new file mode 100644 index 0000000..5c2a28c --- /dev/null +++ b/benchmarks/2.11/src/kittens/show_10.scala @@ -0,0 +1,18 @@ +import adt._ +import cats._ +import derived._ +import cats.Show +import cats.instances.all._ + +object Gen { + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] +} diff --git a/benchmarks/2.11/src/kittens/show_50.scala b/benchmarks/2.11/src/kittens/show_50.scala new file mode 100644 index 0000000..afd085b --- /dev/null +++ b/benchmarks/2.11/src/kittens/show_50.scala @@ -0,0 +1,63 @@ +import adt._ +import cats._ +import derived._ +import cats.Show +import cats.instances.all._ + +object Gen { + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + +} diff --git a/benchmarks/2.11/src/kittens/show_tree_50.scala b/benchmarks/2.11/src/kittens/show_tree_50.scala new file mode 100644 index 0000000..18ac6d9 --- /dev/null +++ b/benchmarks/2.11/src/kittens/show_tree_50.scala @@ -0,0 +1,63 @@ +import adt._ +import cats._ +import derived._ +import cats.Show +import cats.instances.all._ + +object Gen { + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + +} diff --git a/benchmarks/2.11/src/kittens/small_100.scala b/benchmarks/2.11/src/kittens/small_100.scala new file mode 100644 index 0000000..51d922d --- /dev/null +++ b/benchmarks/2.11/src/kittens/small_100.scala @@ -0,0 +1,118 @@ +import adt._ +import cats._ +import derived._ +import cats.Show +import cats.instances.all._ + +object Gen { + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + +} diff --git a/benchmarks/2.11/src/magnolia/complex.scala b/benchmarks/2.11/src/magnolia/complex.scala new file mode 100644 index 0000000..f843c29 --- /dev/null +++ b/benchmarks/2.11/src/magnolia/complex.scala @@ -0,0 +1,24 @@ +import magnolia._, examples._ + +object Gen { + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] +} diff --git a/benchmarks/2.11/src/magnolia/eq_10.scala b/benchmarks/2.11/src/magnolia/eq_10.scala new file mode 100644 index 0000000..b6adf78 --- /dev/null +++ b/benchmarks/2.11/src/magnolia/eq_10.scala @@ -0,0 +1,14 @@ +import magnolia._, examples._ + +object Gen { + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] +} diff --git a/benchmarks/2.11/src/magnolia/eq_50.scala b/benchmarks/2.11/src/magnolia/eq_50.scala new file mode 100644 index 0000000..b1dd036 --- /dev/null +++ b/benchmarks/2.11/src/magnolia/eq_50.scala @@ -0,0 +1,59 @@ +import magnolia._, examples._ + +object Gen { + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + +} diff --git a/benchmarks/2.11/src/magnolia/gadt_100.scala b/benchmarks/2.11/src/magnolia/gadt_100.scala new file mode 100644 index 0000000..e392642 --- /dev/null +++ b/benchmarks/2.11/src/magnolia/gadt_100.scala @@ -0,0 +1,113 @@ +import magnolia._, examples._ + +object Gen { + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] +} diff --git a/benchmarks/2.11/src/magnolia/obj.scala b/benchmarks/2.11/src/magnolia/obj.scala new file mode 100644 index 0000000..0dd82cf --- /dev/null +++ b/benchmarks/2.11/src/magnolia/obj.scala @@ -0,0 +1,114 @@ +import magnolia._, examples._ + +object Gen { + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + +} diff --git a/benchmarks/2.11/src/magnolia/show_10.scala b/benchmarks/2.11/src/magnolia/show_10.scala new file mode 100644 index 0000000..c6f4a1c --- /dev/null +++ b/benchmarks/2.11/src/magnolia/show_10.scala @@ -0,0 +1,14 @@ +import magnolia._, examples._ + +object Gen { + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] +} diff --git a/benchmarks/2.11/src/magnolia/show_50.scala b/benchmarks/2.11/src/magnolia/show_50.scala new file mode 100644 index 0000000..27cfbae --- /dev/null +++ b/benchmarks/2.11/src/magnolia/show_50.scala @@ -0,0 +1,58 @@ +import magnolia._, examples._ + +object Gen { + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] +} diff --git a/benchmarks/2.11/src/magnolia/show_tree_50.scala b/benchmarks/2.11/src/magnolia/show_tree_50.scala new file mode 100644 index 0000000..a06513a --- /dev/null +++ b/benchmarks/2.11/src/magnolia/show_tree_50.scala @@ -0,0 +1,58 @@ +import magnolia._, examples._ + +object Gen { + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] +} diff --git a/benchmarks/2.11/src/magnolia/small_100.scala b/benchmarks/2.11/src/magnolia/small_100.scala new file mode 100644 index 0000000..b9eb9ed --- /dev/null +++ b/benchmarks/2.11/src/magnolia/small_100.scala @@ -0,0 +1,113 @@ +import magnolia._, examples._ + +object Gen { + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] +} diff --git a/benchmarks/2.12/benchmark b/benchmarks/2.12/benchmark new file mode 100755 index 0000000..744639d --- /dev/null +++ b/benchmarks/2.12/benchmark @@ -0,0 +1,22 @@ +#!/bin/bash + +COUNT="$1" +shift + +benchmark() { + DERIVATION="$1" + TEST="$2" + echo "$DERIVATION/$TEST:" + echo "src/adt.scala" > .script + for I in $(seq 1 $COUNT); do + echo "src/$DERIVATION/$TEST.scala" >> .script + done + cat .script | scalac-2.12 -Xresident -d bin -cp $(ls lib/* | tr '\n' :)bin | ts -i -s '%M:%.S' > out.log + cat out.log | tail -n +2 | paste -d' ' - .script | sed 's/nsc.//g' | head -n -1 + echo +} + +for J in "$@"; do + benchmark magnolia "$J" + benchmark kittens "$J" +done diff --git a/benchmarks/2.12/src/adt.scala b/benchmarks/2.12/src/adt.scala new file mode 100644 index 0000000..902d2d8 --- /dev/null +++ b/benchmarks/2.12/src/adt.scala @@ -0,0 +1,43 @@ +package adt + +sealed trait Tree +case class Leaf(value: String) extends Tree +case class Branch(left: Tree, right: Tree) extends Tree + +sealed trait GTree[+T] +case class GLeaf[+T](value: String) extends GTree[T] +case class GBranch[+T](left: GTree[T], right: GTree[T]) extends GTree[T] + +sealed trait Entity + +case class Company(name: String) extends Entity +case class Human(name: String, age: Int) extends Entity +case class Address(line1: String, occupant: Human) + +sealed trait Alphabet + +case class Greek(άλφα: Letter, βήτα: Letter, γάμα: Letter, δέλτα: Letter, έψιλον: Letter, ζήτα: Letter, ήτα: Letter, θήτα: Letter) extends Alphabet +case class Cyrillic(б: Letter, в: Letter, г: Letter, д: Letter, ж: Letter, з: Letter) extends Alphabet +case class Latin(a: Letter, b: Letter, c: Letter, d: Letter, e: Letter, f: Letter, g: Letter, h: Letter, i: Letter, j: Letter, k: Letter, l: Letter, m: Letter, n: Letter, o: Letter, p: Letter, q: Letter, r: Letter, s: Letter, t: Letter, u: Letter, v: Letter) extends Alphabet + +case class Letter(name: String, phonetic: String) +case class Country(name: String, language: Language, leader: Person, existence: DateRange) +case class Language(name: String, code: String, alphabet: Alphabet) +case class Person(name: String, dateOfBirth: Date) +case class Date(year: Int, month: Month, day: Int) + +case class DateRange(from: Date, toDate: Date) + +sealed trait Month +case object Jan extends Month +case object Feb extends Month +case object Mar extends Month +case object Apr extends Month +case object May extends Month +case object Jun extends Month +case object Jul extends Month +case object Aug extends Month +case object Sep extends Month +case object Oct extends Month +case object Nov extends Month +case object Dec extends Month diff --git a/benchmarks/2.12/src/kittens/complex.scala b/benchmarks/2.12/src/kittens/complex.scala new file mode 100644 index 0000000..70d0d95 --- /dev/null +++ b/benchmarks/2.12/src/kittens/complex.scala @@ -0,0 +1,28 @@ +import adt._ +import cats._ +import derived._ +import cats.Show +import cats.instances.all._ + +object Gen { + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] + derive.eq[Country] +} diff --git a/benchmarks/2.12/src/kittens/eq_10.scala b/benchmarks/2.12/src/kittens/eq_10.scala new file mode 100644 index 0000000..bed5915 --- /dev/null +++ b/benchmarks/2.12/src/kittens/eq_10.scala @@ -0,0 +1,18 @@ +import adt._ +import cats._ +import derived._ +import cats.Eq +import cats.instances.all._ + +object Gen { + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] +} diff --git a/benchmarks/2.12/src/kittens/eq_50.scala b/benchmarks/2.12/src/kittens/eq_50.scala new file mode 100644 index 0000000..cac774d --- /dev/null +++ b/benchmarks/2.12/src/kittens/eq_50.scala @@ -0,0 +1,63 @@ +import adt._ +import cats._ +import derived._ +import cats.Eq +import cats.instances.all._ + +object Gen { + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + derive.eq[Alphabet] + +} diff --git a/benchmarks/2.12/src/kittens/gadt_100.scala b/benchmarks/2.12/src/kittens/gadt_100.scala new file mode 100644 index 0000000..aa6710d --- /dev/null +++ b/benchmarks/2.12/src/kittens/gadt_100.scala @@ -0,0 +1,118 @@ +import adt._ +import cats._ +import derived._ +import cats.eq +import cats.instances.all._ + +object Gen { + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + derive.eq[GTree[String]] + +} diff --git a/benchmarks/2.12/src/kittens/obj.scala b/benchmarks/2.12/src/kittens/obj.scala new file mode 100644 index 0000000..c01199e --- /dev/null +++ b/benchmarks/2.12/src/kittens/obj.scala @@ -0,0 +1,118 @@ +import adt._ +import cats._ +import derived._ +import cats.Show +import cats.instances.all._ + +object Gen { + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + derive.show[Jan.type] + +} diff --git a/benchmarks/2.12/src/kittens/show_10.scala b/benchmarks/2.12/src/kittens/show_10.scala new file mode 100644 index 0000000..5c2a28c --- /dev/null +++ b/benchmarks/2.12/src/kittens/show_10.scala @@ -0,0 +1,18 @@ +import adt._ +import cats._ +import derived._ +import cats.Show +import cats.instances.all._ + +object Gen { + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] +} diff --git a/benchmarks/2.12/src/kittens/show_50.scala b/benchmarks/2.12/src/kittens/show_50.scala new file mode 100644 index 0000000..afd085b --- /dev/null +++ b/benchmarks/2.12/src/kittens/show_50.scala @@ -0,0 +1,63 @@ +import adt._ +import cats._ +import derived._ +import cats.Show +import cats.instances.all._ + +object Gen { + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + derive.show[Alphabet] + +} diff --git a/benchmarks/2.12/src/kittens/show_tree_50.scala b/benchmarks/2.12/src/kittens/show_tree_50.scala new file mode 100644 index 0000000..18ac6d9 --- /dev/null +++ b/benchmarks/2.12/src/kittens/show_tree_50.scala @@ -0,0 +1,63 @@ +import adt._ +import cats._ +import derived._ +import cats.Show +import cats.instances.all._ + +object Gen { + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + derive.show[Tree] + +} diff --git a/benchmarks/2.12/src/kittens/small_100.scala b/benchmarks/2.12/src/kittens/small_100.scala new file mode 100644 index 0000000..51d922d --- /dev/null +++ b/benchmarks/2.12/src/kittens/small_100.scala @@ -0,0 +1,118 @@ +import adt._ +import cats._ +import derived._ +import cats.Show +import cats.instances.all._ + +object Gen { + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + derive.show[Letter] + +} diff --git a/benchmarks/2.12/src/magnolia/complex.scala b/benchmarks/2.12/src/magnolia/complex.scala new file mode 100644 index 0000000..f843c29 --- /dev/null +++ b/benchmarks/2.12/src/magnolia/complex.scala @@ -0,0 +1,24 @@ +import magnolia._, examples._ + +object Gen { + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] + Eq.generic[adt.Country] +} diff --git a/benchmarks/2.12/src/magnolia/eq_10.scala b/benchmarks/2.12/src/magnolia/eq_10.scala new file mode 100644 index 0000000..b6adf78 --- /dev/null +++ b/benchmarks/2.12/src/magnolia/eq_10.scala @@ -0,0 +1,14 @@ +import magnolia._, examples._ + +object Gen { + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] +} diff --git a/benchmarks/2.12/src/magnolia/eq_50.scala b/benchmarks/2.12/src/magnolia/eq_50.scala new file mode 100644 index 0000000..b1dd036 --- /dev/null +++ b/benchmarks/2.12/src/magnolia/eq_50.scala @@ -0,0 +1,59 @@ +import magnolia._, examples._ + +object Gen { + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + Eq.generic[adt.Alphabet] + +} diff --git a/benchmarks/2.12/src/magnolia/gadt_100.scala b/benchmarks/2.12/src/magnolia/gadt_100.scala new file mode 100644 index 0000000..e392642 --- /dev/null +++ b/benchmarks/2.12/src/magnolia/gadt_100.scala @@ -0,0 +1,113 @@ +import magnolia._, examples._ + +object Gen { + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] + Eq.generic[adt.GTree[String]] +} diff --git a/benchmarks/2.12/src/magnolia/obj.scala b/benchmarks/2.12/src/magnolia/obj.scala new file mode 100644 index 0000000..0dd82cf --- /dev/null +++ b/benchmarks/2.12/src/magnolia/obj.scala @@ -0,0 +1,114 @@ +import magnolia._, examples._ + +object Gen { + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + Show.generic[adt.Jan.type] + +} diff --git a/benchmarks/2.12/src/magnolia/show_10.scala b/benchmarks/2.12/src/magnolia/show_10.scala new file mode 100644 index 0000000..c6f4a1c --- /dev/null +++ b/benchmarks/2.12/src/magnolia/show_10.scala @@ -0,0 +1,14 @@ +import magnolia._, examples._ + +object Gen { + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] +} diff --git a/benchmarks/2.12/src/magnolia/show_50.scala b/benchmarks/2.12/src/magnolia/show_50.scala new file mode 100644 index 0000000..27cfbae --- /dev/null +++ b/benchmarks/2.12/src/magnolia/show_50.scala @@ -0,0 +1,58 @@ +import magnolia._, examples._ + +object Gen { + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] + Show.generic[adt.Alphabet] +} diff --git a/benchmarks/2.12/src/magnolia/show_tree_50.scala b/benchmarks/2.12/src/magnolia/show_tree_50.scala new file mode 100644 index 0000000..a06513a --- /dev/null +++ b/benchmarks/2.12/src/magnolia/show_tree_50.scala @@ -0,0 +1,58 @@ +import magnolia._, examples._ + +object Gen { + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] + Show.generic[adt.Tree] +} diff --git a/benchmarks/2.12/src/magnolia/small_100.scala b/benchmarks/2.12/src/magnolia/small_100.scala new file mode 100644 index 0000000..b9eb9ed --- /dev/null +++ b/benchmarks/2.12/src/magnolia/small_100.scala @@ -0,0 +1,113 @@ +import magnolia._, examples._ + +object Gen { + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] + Show.generic[adt.Letter] +} diff --git a/benchmarks/fetch.sh b/benchmarks/fetch.sh new file mode 100755 index 0000000..6644a06 --- /dev/null +++ b/benchmarks/fetch.sh @@ -0,0 +1,13 @@ +#!/bin/sh +mkdir -p 2.12/lib 2.11/lib +for V in 2.12 2.11; do + wget -O $V/lib/export-hook.jar "http://repo1.maven.org/maven2/org/typelevel/export-hook_$V/1.2.0/export-hook_$V-1.2.0.jar" + wget -O $V/lib/alleycats-core.jar "http://repo1.maven.org/maven2/org/typelevel/alleycats-core_$V/1.0.0-RC1/alleycats-core_$V-1.0.0-RC1.jar" + wget -O $V/lib/machinist.jar "http://repo1.maven.org/maven2/org/typelevel/machinist_$V/0.6.2/machinist_$V-0.6.2.jar" + wget -O $V/lib/macro-compat.jar "http://repo1.maven.org/maven2/org/typelevel/macro-compat_$V/1.1.1/macro-compat_$V-1.1.1.jar" + wget -O $V/lib/shapeless.jar "http://repo1.maven.org/maven2/com/chuusai/shapeless_$V/2.3.2/shapeless_$V-2.3.2.jar" + wget -O $V/lib/cats-macros.jar "http://repo1.maven.org/maven2/org/typelevel/cats-macros_$V/1.0.0-RC1/cats-macros_$V-1.0.0-RC1.jar" + wget -O $V/lib/cats-kernel.jar "http://repo1.maven.org/maven2/org/typelevel/cats-kernel_$V/1.0.0-RC1/cats-kernel_$V-1.0.0-RC1.jar" + wget -O $V/lib/cats-core.jar "http://repo1.maven.org/maven2/org/typelevel/cats-core_$V/1.0.0-RC1/cats-core_$V-1.0.0-RC1.jar" + wget -O $V/lib/kittens.jar "http://repo1.maven.org/maven2/org/typelevel/kittens_$V/1.0.0-RC1/kittens_$V-1.0.0-RC1.jar" +done -- cgit v1.2.3