Wouldn't #2 mean we'd have to annotate (via pragma) every type we want to eliminate, rather than a single type?

I think the current design serves the need: "I want you to try really hard on this function." ... which seems useful.

#2 seems like an orthogonal issue: "I want to ensure this type is optimized away" ... which also seems useful, but I'm not sure it replaces the first use. (Though I missed the suggestion at ICFP... is this the ephemeral types one?)


On Wed, Oct 9, 2013 at 9:55 AM, Johan Tibell <johan.tibell@gmail.com> wrote:
On Wed, Oct 9, 2013 at 7:13 AM, Austin Seipp <austin@well-typed.com> wrote:
> Early last week I was reminded of something, which was that vector/dph
> depend on the stage2 compiler - this is because both packages use
> annotations to specify ForceSpecConstr and NoSpecConstr on several key
> datatypes.
>
> For most of our platforms (now including ARM,) this should generally
> be OK, because we have stage2 and the linker available to support it.
>
> But in particular, it makes vector and dph unusable for cross
> compilers. This might be somewhat problematic for e.g. iOS or an RPi,
> where we only have a stage1 cross compiler - but it's reasonable to
> assume we may want to use vector there! And more and more libraries
> depend on vector these days.

I raised the same issue with Simon PJ a while ago. We ran into this
problem when trying use GHC as a cross-compiler at Google. I think we
should

 1. Convert it to a pragma.
 2. Look into a design that was suggested at ICFP, namely to put a
pragma on the data type we want to get optimized away instead.

-- Johan
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs