Thanks. This is interesting, I'll have to take a closer look at it.
On Tue, Nov 8, 2016, 7:01 AM Oleg <oleg@okmij.org> wrote:
> On 21 April 2016 at 09:13, Gregory Malecha <gmalecha@gmail.com> wrote:
> I'm wondering if there is any work (and interest) on supporting
> user-defined optimizations similar to GHC's rewrite rules in the Ocaml
> compiler. For example, a standard example would be specifying map fusion:
to which Gabriel Scherer commented on Thu, 21 Apr 2016 12:02:14 -0400
> Another approach that might be worth trying (sorry for not thinking
> about it earlier) is MetaOCaml. I tend of think of it as a tool to
> explicitly specify and control partial evaluation strategies.
Indeed. We'd like to point out an application of MetaOCaml, not just
to map fusion -- but also concat_map fusion and zip fusion, etc. We
present a streams library that supports the wide set of combinators --
from map and filter to concat_map (flat_map) and zip -- and produces
the hand-written quality code. It is faster than Batteries by up to more
than two orders of magnitude.
http://okmij.org/ftp/meta-programming/strymonas.pdf
http://strymonas.github.io/
Unlike GHC Rules, we guarantee the performance.
--- gregory malecha
gmalecha.github.io