Wired-in data-constructors with UNPACKed fields

2014-08-17 Thread Herbert Valerio Riedel
Hello *, I'm a bit stuck with the wired-in type aspect of integer-gmp2 and was hoping someone with more experience in this area could provide direction on how to properly register the data definition data Integer = SI#Int# | Jp# {-# UNPACK #-} !BigNat

RE: Wired-in data-constructors with UNPACKed fields

2014-08-17 Thread Simon Peyton Jones
Herbert You'll see that 'pcDataCon' in TysWiredIn ultimately calls pcDataConWithFixity'. And that builds a data constructor with a NoDataConRep field, comment "Wired-in types are too simple to need wrappers". But your wired-in type is NOT too simply to need a wrapper! You'll need to build a

RE: Unique as special boxing type & hidden constructors

2014-08-17 Thread Simon Peyton Jones
Re (1) I think this is a historical. A newtype wrapping an Int should be fine. I'd be ok with that change. Re (2), I think your question is: why does module Unique export the data type Unique abstractly, rather than exporting both the data type and its constructor. No deep reason here, but i

RE: [GHC] #9434: GHC.List.reverse does not fuse

2014-08-17 Thread Simon Peyton Jones
Well, I’d much rather avoid creating the duplication in the first place, than to create and try to CSE it away. Others have suggested ways of doing so, following the pattern of existing RULES. Simon From: David Feuer [mailto:david.fe...@gmail.com] Sent: 15 August 2014 16:41 To: ghc-devs; Simon

RE: [GHC] #9434: GHC.List.reverse does not fuse

2014-08-17 Thread David Feuer
I'm working on it, based on a discussion with Dan Doel. That said, Haskell's supposed to be anti-pattern, and rewrite/transform/write-back is definitely a pattern—and a somewhat painful one. Aside from having to use forms that can be matched on (intentionally blinding the inliner) there's the unfor

Trouble committing

2014-08-17 Thread Andreas Voellmy
Hi GHCers, I just fixed a bug (#9423) and went through the Phab workflow. Then I did a fresh checkout from git and ran: $ git checkout master $ arc patch --nobranch D129 $ git push origin master as explained on https://ghc.haskell.org/trac/ghc/wiki/Phabricator, but on the last command I get this