> Previously the tagToEnum# was optimised away in the code generator in
> the common cases.  Perhaps the Simplifier will do that for the wrappers 
> now, I don't know. 
This special case is still in the code generator and it will be there until we 
move handling of 
tagToEnum# to Core. So using wrappers changes nothing - generated code is 
exactly the same as it 
used to be. Nothing gained, nothing lost.

> But if people are using primops, they are probably 
> deliberately writing low-level code and they don't want to be relying on
> optimisations that might not happen.
In which case they are free to modify their code to use the new primops. The 
only concern being 
that perhaps they might not be aware that what used to be a primop is now a 
normal function. But 
I'd assume that if someone decides to use primops then they are at least 
moderately following 
changes in the internals of GHC and will spot out that change in the release 
notes. That's my 
optimistic assumption.

> I don't mind breaking these very low-level APIs.
We are breaking that API at the moment, except that you propose to break it by 
chnaging type 
signatures, whereas I chose to break it by changing names. So currently the 
change in primops 
will not go unnoticed.

> We could always provide a GHC.Prim.Compat 
Well, that's what GHC.PrimWrappers is currently - it provides backwards 
compatibility (except for 
a few functions that Simon PJ pointed out, but I can easily change that).

Janek

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

Reply via email to