[Haskell-cafe] Stream fusion and span/break/group/init/tails

Johan Tibell johan.tibell at gmail.com
Fri Apr 26 07:35:50 CEST 2013


On Thu, Apr 25, 2013 at 9:20 PM, Ben Lippmeier <benl at ouroborus.net> wrote:
>
> On 26/04/2013, at 2:15 PM, Johan Tibell wrote:
>
>> Hi Ben,
>>
>> On Thu, Apr 25, 2013 at 7:46 PM, Ben Lippmeier <benl at ouroborus.net> wrote:
>>> The Repa plugin will also do proper SIMD vectorisation for stream programs, producing the SIMD primops that Geoff recently added. Along the way it will brutally convert all operations on boxed/lifted numeric data to their unboxed equivalents, because I am sick of adding bang patterns to every single function parameter in Repa programs.
>>
>> How far is this plugin from being usable to implement a
>>
>> {-# LANGUAGE Strict #-}
>>
>> pragma for treating a single module as if Haskell was strict?
>
> There is already one that does this, but I haven't used it.
>
> http://hackage.haskell.org/package/strict-ghc-plugin
>
> It's one of the demo plugins, though you need to mark individual functions rather than the whole module (which would be straightforward to add).
>
> The Repa plugin is only supposed to munge functions using the Repa library, rather than the whole module.

I guess what I was really hoping for was a plugin that rigorously
defined what it meant to make the code strict at a source language
level, rather than at a "lets make all lets into cases" Core level. :)



More information about the Haskell-Cafe mailing list