RE: Which of the following PrimTyCons have a pointer-sized representations

2012-12-11 Thread Simon Peyton-Jones
Johan,

Well, I started to review your patch.  And then I re-discovered how horribly 
messy that code is; with independent decisions taken in the desugarer, MkId, 
and TcTyClsDcls, all of which must line up.

So I totally refactored everything which cost me a couple of days (because it 
has quite wide span).  I'm validating now.

I realise that "unbox-strict-fields" means "unbox it if it's strict", whereas 
your new "unbox-strict-primitive-fields" is the same but a bit less aggressive: 
   "unbox it if it's strict, AND the unboxed version
is at most one word wide"
Where a Float or Double count as "one word".

So I changed it to "...AND the unboxed version is at most one field wide".  
That is we get one field not 2 or 10.  So consider

data T = MkT !S
data S = MkS Int

then my impl will unbox the S field of MkT because the result is only one field 
wide, namely an Int. 

It would be easy to also restrict to *primitive* types, but it seems mildly 
beneficial not to. 

However the flag is then a mis-nomer.

I'll commit shortly and you can look

Simon

| -Original Message-
| From: Johan Tibell [mailto:johan.tib...@gmail.com]
| Sent: 07 December 2012 22:10
| To: Simon Peyton-Jones
| Cc: glasgow-haskell-users
| Subject: Re: Which of the following PrimTyCons have a pointer-sized
| representations
| 
| On Fri, Dec 7, 2012 at 10:48 AM, Johan Tibell 
| wrote:
| > On Fri, Dec 7, 2012 at 3:36 AM, Simon Peyton-Jones
| >  wrote:
| >> You can use TyCon.tyConPrimRep, followed by primRepSizeW
| >
| > Looking at primRepSizeW I see that the only PrimRep that is bigger
| > than one word is Doubles, Int64s, and Word64s on 32-bit platforms.
| > Manuel (I think wisely) suggested that we should make an exception for
| > these types and unpack them on 32-bit platforms if
| > -funbox-strict-primitive-fields is set, even thought technically they
| > will occupy more space than a pointer. The reasoning is that we want
| > to avoid surprising behavior when users move code between 32-bit and
| > 64-bit platforms, as e.g. unpacking vs not-unpacking Doubles can make
| > a large difference in certain tight loops.
| >
| > But this means that checking the size in can_unbox_prim is no longer
| > necessary, so I could remove that check. This does mean that if we
| > ever add a new PrimTyCon that has a size that's larger than a pointer,
| > the implementation of -funbox-strict-primitive-fields has to change.
| >
| > The alternative would be for me to add
| >
| > primRepSizeForUnboxW :: PrimRep -> Int
| > primRepSizeForUnboxW IntRep   = 1
| > primRepSizeForUnboxW WordRep  = 1
| > primRepSizeForUnboxW Int64Rep = 1-- [Note: Primitive size
| exception]
| > primRepSizeForUnboxW Word64Rep= 1-- [Note: Primitive size
| exception]
| > primRepSizeForUnboxW FloatRep = 1-- NB. might not take a full word
| > primRepSizeForUnboxW DoubleRep= 1-- [Note: Primitive size
| exception]
| > primRepSizeForUnboxW AddrRep  = 1
| > primRepSizeForUnboxW PtrRep   = 1
| > primRepSizeForUnboxW VoidRep  = 0
| >
| > And use that function in can_unbox_prim. That way we'd get a pattern
| > match warning if we ever add a new PrimRep (and thus need to evaluate
| > if PrimTyCons with that PrimRep should be unpacked by
| > -funbox-strict-primitive-fields).
| 
| I went with the latter approach as it seems safer.
| 
| -- Johan

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


Re: Which of the following PrimTyCons have a pointer-sized representations

2012-12-11 Thread Simon Marlow

On 11/12/12 12:29, Simon Peyton-Jones wrote:

Johan,

Well, I started to review your patch.  And then I re-discovered how horribly 
messy that code is; with independent decisions taken in the desugarer, MkId, 
and TcTyClsDcls, all of which must line up.

So I totally refactored everything which cost me a couple of days (because it 
has quite wide span).  I'm validating now.

I realise that "unbox-strict-fields" means "unbox it if it's strict", whereas your new 
"unbox-strict-primitive-fields" is the same but a bit less aggressive:
"unbox it if it's strict, AND the unboxed version
 is at most one word wide"
Where a Float or Double count as "one word".

So I changed it to "...AND the unboxed version is at most one field wide".  
That is we get one field not 2 or 10.  So consider


What is a "field"?



data T = MkT !S
data S = MkS Int

then my impl will unbox the S field of MkT because the result is only one field 
wide, namely an Int.


Wouldn't Johan's have unboxed S too?  (if not, I misunderstood what he did)


It would be easy to also restrict to *primitive* types, but it seems mildly 
beneficial not to.

However the flag is then a mis-nomer.


Right, I had been wondering whether "-funbox-strict-small-fields" or 
something would make a better name, since it isn't restricted to 
primitive types.


Cheers,
Simon





I'll commit shortly and you can look

Simon

| -Original Message-
| From: Johan Tibell [mailto:johan.tib...@gmail.com]
| Sent: 07 December 2012 22:10
| To: Simon Peyton-Jones
| Cc: glasgow-haskell-users
| Subject: Re: Which of the following PrimTyCons have a pointer-sized
| representations
|
| On Fri, Dec 7, 2012 at 10:48 AM, Johan Tibell 
| wrote:
| > On Fri, Dec 7, 2012 at 3:36 AM, Simon Peyton-Jones
| >  wrote:
| >> You can use TyCon.tyConPrimRep, followed by primRepSizeW
| >
| > Looking at primRepSizeW I see that the only PrimRep that is bigger
| > than one word is Doubles, Int64s, and Word64s on 32-bit platforms.
| > Manuel (I think wisely) suggested that we should make an exception for
| > these types and unpack them on 32-bit platforms if
| > -funbox-strict-primitive-fields is set, even thought technically they
| > will occupy more space than a pointer. The reasoning is that we want
| > to avoid surprising behavior when users move code between 32-bit and
| > 64-bit platforms, as e.g. unpacking vs not-unpacking Doubles can make
| > a large difference in certain tight loops.
| >
| > But this means that checking the size in can_unbox_prim is no longer
| > necessary, so I could remove that check. This does mean that if we
| > ever add a new PrimTyCon that has a size that's larger than a pointer,
| > the implementation of -funbox-strict-primitive-fields has to change.
| >
| > The alternative would be for me to add
| >
| > primRepSizeForUnboxW :: PrimRep -> Int
| > primRepSizeForUnboxW IntRep   = 1
| > primRepSizeForUnboxW WordRep  = 1
| > primRepSizeForUnboxW Int64Rep = 1-- [Note: Primitive size
| exception]
| > primRepSizeForUnboxW Word64Rep= 1-- [Note: Primitive size
| exception]
| > primRepSizeForUnboxW FloatRep = 1-- NB. might not take a full word
| > primRepSizeForUnboxW DoubleRep= 1-- [Note: Primitive size
| exception]
| > primRepSizeForUnboxW AddrRep  = 1
| > primRepSizeForUnboxW PtrRep   = 1
| > primRepSizeForUnboxW VoidRep  = 0
| >
| > And use that function in can_unbox_prim. That way we'd get a pattern
| > match warning if we ever add a new PrimRep (and thus need to evaluate
| > if PrimTyCons with that PrimRep should be unpacked by
| > -funbox-strict-primitive-fields).
|
| I went with the latter approach as it seems safer.
|
| -- Johan

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc




___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: ghc] master: document special "this" syntax for PackageImports (#7409) (b0339aa)

2012-12-11 Thread Simon Marlow
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/b0339aa1e298c700c849813fbd16b29c92e27055

>---

commit b0339aa1e298c700c849813fbd16b29c92e27055
Author: Simon Marlow 
Date:   Tue Dec 11 09:20:24 2012 +

document special "this" syntax for PackageImports (#7409)

>---

 docs/users_guide/glasgow_exts.xml |3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/docs/users_guide/glasgow_exts.xml 
b/docs/users_guide/glasgow_exts.xml
index 6d549b8..825ef65 100644
--- a/docs/users_guide/glasgow_exts.xml
+++ b/docs/users_guide/glasgow_exts.xml
@@ -1999,6 +1999,9 @@ import "network" Network.Socket
 available from multiple packages, or is present in both the
 current package being built and an external package.
 
+  The special package name this can be used to
+refer to the current package being built.
+
   Note: you probably don't need to use this feature, it was
 added mainly so that we can build backwards-compatible versions of
 packages when APIs change.  It can lead to fragile dependencies in



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: ghc] master: add enabled_capabilities (#7491) (d684114)

2012-12-11 Thread Simon Marlow
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/d68411496b1cad0e2e912875f32457372b5c2fcd

>---

commit d68411496b1cad0e2e912875f32457372b5c2fcd
Author: Simon Marlow 
Date:   Tue Dec 11 15:38:00 2012 +

add enabled_capabilities (#7491)

>---

 rts/Linker.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/rts/Linker.c b/rts/Linker.c
index 3e169fd..fa1de89 100644
--- a/rts/Linker.c
+++ b/rts/Linker.c
@@ -1310,6 +1310,7 @@ typedef struct _RtsSymbolVal {
   SymI_NeedsProto(rts_stop_on_exception)\
   SymI_HasProto(stopTimer)  \
   SymI_HasProto(n_capabilities) \
+  SymI_HasProto(enabled_capabilities)   \
   SymI_HasProto(stg_traceCcszh) \
   SymI_HasProto(stg_traceEventzh)   \
   SymI_HasProto(stg_traceMarkerzh)  \



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


Re: Mailing list reorganisation

2012-12-11 Thread Johan Tibell
On Tue, Dec 11, 2012 at 7:04 AM, Ian Lynagh  wrote:
> Does that sound reasonable? Does anyone have any further questions or
> comments?

Sound good to me. Thanks for working on this.

-- Johan

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


Re: Which of the following PrimTyCons have a pointer-sized representations

2012-12-11 Thread Johan Tibell
Simon,

On Tue, Dec 11, 2012 at 4:29 AM, Simon Peyton-Jones
 wrote:
> So I totally refactored everything which cost me a couple of days (because it 
> has quite wide span).  I'm validating now.

Yay for code clean-ups!

> So I changed it to "...AND the unboxed version is at most one field wide".  
> That is we get one field not 2 or 10.  So consider
>
> data T = MkT !S
> data S = MkS Int
>
> then my impl will unbox the S field of MkT because the result is only one 
> field wide, namely an Int.

This is the behavior I desired. If it didn't work that way in my
implementation it was an oversight. Another way to define the desired
behavior is to say it preserves the size of the constructor (if we
ignore the Double/Int64/Word64 special case of 32-bit architectures).
This property is what I hope will make it possible to enable this by
default (after extensive testing).

I'm happy to call this -funbox-strict-small-fields. However, I'd like
the documentation to talk about pointer-sized things as that, even
though a bit operational sounding, has a clear meaning in my mind.

-- Johan

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


RE: Hoopl vs LLVM?

2012-12-11 Thread Simon Peyton-Jones
|  In my opinion we should only implement optimizations in Hoopl that
|  LLVM cannot do due to lack high-level information that we might have
|  gotten rid of before we reach the LLVM code generator*. I don't think

Indeed.  And I think there is probably quite a lot that is in reach for C--, 
but out of reach for LLVM.  Why?  Because before we pass the code to LLVM we do 
CPS-conversion.  So code that started like this:
f() {
x = blah
z = blah2
p,q = g(x)
res = z + p - q
return res
}
Turns into something more like  this:
f () {
x = blah
z = blah2
...push z on stack...
...push fr1 onto stack...
jump g(x)
}

fr1( p,q ) {
z = ...pop from stack...
res = z + p - q
return res
}

Notice that the stack is now *explicit* rather than implicit, and LLVM has no 
hope of moving the assignment to z past the call to g (which is trivial in the 
original).  I can explain WHY we do this (there is stuff on the wiki) but the 
fact is that we do, and it's no accident.

Some transformations and optimisations are only possible before the CPS 
conversion, which means LLVM can't do it.  There is real meat here.

Moreover, one of Simon M's last acts was to switch to the "new codgen path", 
which uses the new C-- rep etc.  That leaves us *ready* to do some 
traditional-style optimisations on C--, but we have not *actually done* so.   
The field is wide open.

For example, I had a masters student three years ago (Marcej Wos) who implement 
the classic tail-call-becomes-loop optimisation, and got a surprisingly large 
benefit.  His code is rotted now, but I must dig out his Masters project report 
which described it all rather well.

In short, go for it.  But as Johan says, concentrate on things that LLVM can't 
get.

Simon

|  -Original Message-
|  From: glasgow-haskell-users-boun...@haskell.org 
[mailto:glasgow-haskell-users-
|  boun...@haskell.org] On Behalf Of Johan Tibell
|  Sent: 10 December 2012 22:40
|  To: Greg Fitzgerald
|  Cc: GHC Users Mailing List
|  Subject: Re: Hoopl vs LLVM?
|  
|  On Mon, Dec 10, 2012 at 2:24 PM, Greg Fitzgerald  wrote:
|  > Should one group be stealing ideas from the other?  Or apples and oranges?
|  
|  In my opinion we should only implement optimizations in Hoopl that
|  LLVM cannot do due to lack high-level information that we might have
|  gotten rid of before we reach the LLVM code generator*. I don't think
|  we should spend time re-implementing LLVM passes in Hoopl. We have
|  limited time on our hands (much less than the LLVM team) and we're
|  unlikely to do a better job than them here, as we're talking about
|  implementing standard, imperative code optimization. I think our time
|  is better spent on 1) making sure we pass enough information to LLVM
|  for it to do a good job and 2) working on higher-level optimizations
|  (e.g. Core-to-Core).
|  
|  * This also means that I think we should try to preserve any
|  information LLVM might need all the way down to the code generator.
|  
|  -- Johan
|  
|  ___
|  Glasgow-haskell-users mailing list
|  glasgow-haskell-us...@haskell.org
|  http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[nightly] 11-Dec-2012 build of HEAD (unreg) on x86_64-unknown-linux (cam-04-unx)

2012-12-11 Thread GHC Build Reports
Build description = HEAD (unreg) on x86_64-unknown-linux (cam-04-unx)
Build location= /64playpen/simonmar/nightly/HEAD-unreg-cam-04-unx
Build config file = /home/simonmar/nightly/site/msrc/conf-HEAD-unreg-cam-04-unx

Nightly build started on cam-04-unx at Tue Dec 11 18:20:01 GMT 2012.
 checking out new source tree ... warning: libraries/xhtml 
already present; omitting
Submodule 'libraries/Cabal' (http://darcs.haskell.org/libraries/Cabal.git/) 
registered for path 'libraries/Cabal'
Submodule 'libraries/Win32' (http://darcs.haskell.org/libraries/Win32.git/) 
registered for path 'libraries/Win32'
Submodule 'libraries/binary' (http://darcs.haskell.org/libraries/binary.git/) 
registered for path 'libraries/binary'
Submodule 'libraries/bytestring' 
(http://darcs.haskell.org/libraries/bytestring.git/) registered for path 
'libraries/bytestring'
Submodule 'libraries/containers' 
(http://darcs.haskell.org/libraries/containers.git/) registered for path 
'libraries/containers'
Submodule 'libraries/haskeline' 
(http://darcs.haskell.org/libraries/haskeline.git/) registered for path 
'libraries/haskeline'
Submodule 'libraries/pretty' (http://darcs.haskell.org/libraries/pretty.git/) 
registered for path 'libraries/pretty'
Submodule 'libraries/primitive' 
(http://darcs.haskell.org/libraries/primitive.git/) registered for path 
'libraries/primitive'
Submodule 'libraries/terminfo' 
(http://darcs.haskell.org/libraries/terminfo.git/) registered for path 
'libraries/terminfo'
Submodule 'libraries/time' (http://darcs.haskell.org/libraries/time.git/) 
registered for path 'libraries/time'
Submodule 'libraries/transformers' 
(http://darcs.haskell.org/libraries/transformers.git/) registered for path 
'libraries/transformers'
Submodule 'libraries/vector' (http://darcs.haskell.org/libraries/vector.git/) 
registered for path 'libraries/vector'
Submodule 'libraries/xhtml' (http://darcs.haskell.org/libraries/xhtml.git/) 
registered for path 'libraries/xhtml'
Cloning into 'libraries/Cabal'...
Submodule path 'libraries/Cabal': checked out 
'4b43bd95753e5f3e29d7bfbe6bba8477715ac296'
Cloning into 'libraries/Win32'...
Submodule path 'libraries/Win32': checked out 
'21335a30161c099da79ae9619c9782e5e32e4644'
Cloning into 'libraries/binary'...
Submodule path 'libraries/binary': checked out 
'2d31cea238d0d08885c457475fc354dbf2b88976'
Cloning into 'libraries/bytestring'...
Submodule path 'libraries/bytestring': checked out 
'6bd69fe27af33e878e38f4c579983f6a23120a87'
Cloning into 'libraries/containers'...
Submodule path 'libraries/containers': checked out 
'a9b7224068ae60f73baacd5f76d2c27624d90120'
Cloning into 'libraries/haskeline'...
Submodule path 'libraries/haskeline': checked out 
'6ee5fc8ccdee410486a826cadfb2a0a560d60506'
Cloning into 'libraries/pretty'...
Submodule path 'libraries/pretty': checked out 
'ab7e8d91470bb94c9e184dffbec89d0aae116f9b'
Cloning into 'libraries/primitive'...
Submodule path 'libraries/primitive': checked out 
'75c3379b6d76e914cc3c7ffd290b6b1cad7ea3e6'
Cloning into 'libraries/terminfo'...
Submodule path 'libraries/terminfo': checked out 
'579d2c324e69856ff8d1ea8b5036e30c920e1973'
Cloning into 'libraries/time'...
Submodule path 'libraries/time': checked out 
'c98806fe0c9cde7371452ec30fa2900d28d16b16'
Cloning into 'libraries/transformers'...
Submodule path 'libraries/transformers': checked out 
'a59fb93860f84ccd44178dcbbb82cfea7e02cd07'
Cloning into 'libraries/vector'...
Submodule path 'libraries/vector': checked out 
'c4c5a740ec977a4300449bc85f4707ec641be923'
Cloning into 'libraries/xhtml'...
Submodule path 'libraries/xhtml': checked out 
'fb9e0bbb69e15873682a9f25d39652099a3ccac1'
ok.
 Building stage 1 compiler... ok.
GHC Version 7.7
 Building stage 2 compiler... failed; relevant barfage 
is below.
 building testsuite tools ... failed.
 running nofib (-rtsopts -O2) ... ok.
-
Respository hashes:
.|d68411496b1cad0e2e912875f32457372b5c2fcd
ghc-tarballs|18e0c37f8023abf469af991e2fc2d3b024319c27
libraries/array|442ff7744fb51004c5358ec626e704f4536e3d6c
libraries/base|fa55000b516b05387ee9f84f132668e6c10e9243
libraries/deepseq|420507ea418db8664a79aedaa6588b772e8c97c6
libraries/directory|2fcd7016ed71c3fdbce658ab973c3ce5aa217d76
libraries/dph|69dd06c2eaa9289172ec9ffaa356f039c402516f
libraries/filepath|abf31a9aef45d2119a5757dafbe4adf611388ee8
libraries/ghc-prim|c2ed4a8ecffcfd8df09991e8639f665a63af069d
libraries/haskell2010|71bea78ccdbcd8bb8095dee2ebab8423e19ca959
libraries/haskell98|df1846099be1a7220e7d46aef167403eed53ebe5
libraries/hoopl|8e0ef3b7bf6d25919209f74d65c4a77c6689934d
libraries/hpc|02d402f04b2af44dd95340f1d64e81a3fcac049d
libraries/integer-gmp|a8c9be6c0a7fc56201c54c49d965c32f22b2bea8
libraries/integer-simple|30c4af5165f181ef4f089b3d245371230f0aafad
libraries/old-locale|df98c76b078de507ba2f7f23d4473c0ea09d5686
libraries/old-time|859

RE: Which of the following PrimTyCons have a pointer-sized representations

2012-12-11 Thread Simon Peyton-Jones
|  >data T = MkT !S
|  >data S = MkS Int
|  >
|  > then my impl will unbox the S field of MkT because the result is only one 
field
|  wide, namely an Int.
|  
|  Wouldn't Johan's have unboxed S too?  (if not, I misunderstood what he did)

No, that would change the semantics!  We don't want to do that.

|  I'm happy to call this -funbox-strict-small-fields. However, I'd like
|  the documentation to talk about pointer-sized things as that, even
|  though a bit operational sounding, has a clear meaning in my mind.

I'm somewhat inclined to *change* the current flag so that

-funbox-strict-fields means "unbox small fields"
-funbox-all-strict-fields means "unbox ALL strict fields"

And as you say to make -funbox-strict-fields implied by -O.

But I do not feel strongly at all.  You represent users; you decide.  (or 
anyone else can pipe up).

Simon

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


Re: Hoopl vs LLVM?

2012-12-11 Thread Carter Schonwald
Cool info!
Would love to see that report if you can dig it up :)
-Carter


On Tue, Dec 11, 2012 at 2:16 PM, Simon Peyton-Jones
wrote:

> |  In my opinion we should only implement optimizations in Hoopl that
> |  LLVM cannot do due to lack high-level information that we might have
> |  gotten rid of before we reach the LLVM code generator*. I don't think
>
> Indeed.  And I think there is probably quite a lot that is in reach for
> C--, but out of reach for LLVM.  Why?  Because before we pass the code to
> LLVM we do CPS-conversion.  So code that started like this:
> f() {
> x = blah
> z = blah2
> p,q = g(x)
> res = z + p - q
> return res
> }
> Turns into something more like  this:
> f () {
> x = blah
> z = blah2
> ...push z on stack...
> ...push fr1 onto stack...
> jump g(x)
> }
>
> fr1( p,q ) {
> z = ...pop from stack...
> res = z + p - q
> return res
> }
>
> Notice that the stack is now *explicit* rather than implicit, and LLVM has
> no hope of moving the assignment to z past the call to g (which is trivial
> in the original).  I can explain WHY we do this (there is stuff on the
> wiki) but the fact is that we do, and it's no accident.
>
> Some transformations and optimisations are only possible before the CPS
> conversion, which means LLVM can't do it.  There is real meat here.
>
> Moreover, one of Simon M's last acts was to switch to the "new codgen
> path", which uses the new C-- rep etc.  That leaves us *ready* to do some
> traditional-style optimisations on C--, but we have not *actually done* so.
>   The field is wide open.
>
> For example, I had a masters student three years ago (Marcej Wos) who
> implement the classic tail-call-becomes-loop optimisation, and got a
> surprisingly large benefit.  His code is rotted now, but I must dig out his
> Masters project report which described it all rather well.
>
> In short, go for it.  But as Johan says, concentrate on things that LLVM
> can't get.
>
> Simon
>
> |  -Original Message-
> |  From: glasgow-haskell-users-boun...@haskell.org [mailto:
> glasgow-haskell-users-
> |  boun...@haskell.org] On Behalf Of Johan Tibell
> |  Sent: 10 December 2012 22:40
> |  To: Greg Fitzgerald
> |  Cc: GHC Users Mailing List
> |  Subject: Re: Hoopl vs LLVM?
> |
> |  On Mon, Dec 10, 2012 at 2:24 PM, Greg Fitzgerald 
> wrote:
> |  > Should one group be stealing ideas from the other?  Or apples and
> oranges?
> |
> |  In my opinion we should only implement optimizations in Hoopl that
> |  LLVM cannot do due to lack high-level information that we might have
> |  gotten rid of before we reach the LLVM code generator*. I don't think
> |  we should spend time re-implementing LLVM passes in Hoopl. We have
> |  limited time on our hands (much less than the LLVM team) and we're
> |  unlikely to do a better job than them here, as we're talking about
> |  implementing standard, imperative code optimization. I think our time
> |  is better spent on 1) making sure we pass enough information to LLVM
> |  for it to do a good job and 2) working on higher-level optimizations
> |  (e.g. Core-to-Core).
> |
> |  * This also means that I think we should try to preserve any
> |  information LLVM might need all the way down to the code generator.
> |
> |  -- Johan
> |
> |  ___
> |  Glasgow-haskell-users mailing list
> |  glasgow-haskell-us...@haskell.org
> |  http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>
> ___
> Cvs-ghc mailing list
> Cvs-ghc@haskell.org
> http://www.haskell.org/mailman/listinfo/cvs-ghc
>
___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


Re: Which of the following PrimTyCons have a pointer-sized representations

2012-12-11 Thread Johan Tibell
On Tue, Dec 11, 2012 at 1:02 PM, Simon Peyton-Jones
 wrote:
> |  >data T = MkT !S
> |  >data S = MkS Int
> |  >
> |  > then my impl will unbox the S field of MkT because the result is only 
> one field
> |  wide, namely an Int.
> |
> |  Wouldn't Johan's have unboxed S too?  (if not, I misunderstood what he did)
>
> No, that would change the semantics!  We don't want to do that.

I think Simon M meant that my change would have unpacked the field of
*type* S in the MkT constructor. We must not unpack the field in the
MkS constructor.

> |  I'm happy to call this -funbox-strict-small-fields. However, I'd like
> |  the documentation to talk about pointer-sized things as that, even
> |  though a bit operational sounding, has a clear meaning in my mind.
>
> I'm somewhat inclined to *change* the current flag so that
>
> -funbox-strict-fields means "unbox small fields"
> -funbox-all-strict-fields means "unbox ALL strict fields"

Lets go with -funbox-small-strict-fields to avoid unnecessary
breakages. If we end up enabling this flag by default eventually it
doesn't really matter what the name is as people will never type it
out explicitly.

> And as you say to make -funbox-strict-fields implied by -O.

I was going to not enable this by default in 7.8 and spend some time
after the 7.8 release to run a bunch of benchmarks to try to decide
whether it's a win on average. If you think that we should enable it
by default already in 7.8 we can do that.

-- Johan

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


Re: Hoopl vs LLVM?

2012-12-11 Thread Johan Tibell
On Tue, Dec 11, 2012 at 11:16 AM, Simon Peyton-Jones
 wrote:
> Notice that the stack is now *explicit* rather than implicit, and LLVM has no 
> hope of moving the assignment to z past the call to g (which is trivial in 
> the original).  I can explain WHY we do this (there is stuff on the wiki) but 
> the fact is that we do, and it's no accident.

I'd definitely be interesting in understanding why as it, like you
say, makes it harder for LLVM to understand what our code does and
optimize it well.

-- Johan

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


Re: [base] CLK_TCK issue for QNXNTO

2012-12-11 Thread Stephen Paul Weber

Somebody claiming to be Stephen Paul Weber wrote:
When I try to build base for QNXNTO (BlackBerry 10) using my 
cross-compiler I get an error about "test_array is not of static size" or 
similar.


-#if defined(CLK_TCK)
+#if defined(CLK_TCK) && !defined(__QNXNTO__)
(#const CLK_TCK)
#else
unsafePerformIO (sysconf (#const _SC_CLK_TCK) >>= return . fromIntegral)


Looking up CLK_TCK in the QNXNTO time.h:

/* CLK_TCK removed in 1003.1-2001 */
# define CLK_TCK _sysconf(3) /* 3 == _SC_CLK_TCK */

This looks to me to be identical to the `unsafePerformIO` call in the 
`#else` clause in base.  So my patch is safe.  It's probably not ideal, 
though.  What would be the preferred way to fix this (I mean a way that 
would have any chance of getting mainlined).


If CLK_TCK is deprecated, shouldn't GHC just stop using it?

--
Stephen Paul Weber, @singpolyma
See  for how I prefer to be contacted
edition right joseph

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


Re: base not detecting Double/Float machine sizes (QNXNTO)

2012-12-11 Thread Stephen Paul Weber

Somebody claiming to be Stephen Paul Weber wrote:

When building base with my QNXNTO cross-compiling GHC, I get the following:

libraries/base/Foreign/C/Types.hs:162:25:

Not in scope: type constructor or class `HTYPE_FLOAT'


Another question: if `base` cannet build without these constants, then why 
is their absence not a `./configure` error?


--
Stephen Paul Weber, @singpolyma
See  for how I prefer to be contacted
edition right joseph

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[PATCH] QNXNTO and cross-compiling patches

2012-12-11 Thread Stephen Paul Weber
The attached patches are needed to cross-compile with GHC for QNXNTO (the 
BlackBerry 10 Operating System).  They have been tested for the x86 and ARM 
targets both.  One more patch to the LLVM driver will be required to get ARM 
to go with the LLVM in the Ubuntu repos, but otherwise this should be all of 
the patches required to GHC core required (as you can see by my other 
mailing list posts, there will also be a few library patches).


The cross-compiling toolchain for this platform can be obtained from 
 and then GHC can be built with:


. $BBNDK_INSTALL_PATH/bbndk-env.sh
# Create a build.mk that uses INTEGER_LIBRARY=integer-simple
perl boot
./configure --target=i486-pc-nto-qnx8.0.0 --build=i686-linux-gnu 
--host=i486-pc-nto-qnx8.0.0
make

replace i486-pc-nto-qnx8.0.0 with arm-unknown-nto-qnx8.0.0eabi to target ARM.

--
Stephen Paul Weber, @singpolyma
See  for how I prefer to be contacted
edition right joseph

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


Re: [PATCH] QNXNTO and cross-compiling patches

2012-12-11 Thread Stephen Paul Weber

Somebody claiming to be Stephen Paul Weber wrote:

The attached patches are needed to cross-compile with GHC for QNXNTO


And I forgot to attach...  Attached now.

--
Stephen Paul Weber, @singpolyma
See  for how I prefer to be contacted
edition right joseph
>From aac2690dbe47c58da3a2d4bb91cdcd52512039b8 Mon Sep 17 00:00:00 2001
From: Stephen Paul Weber 
Date: Sat, 8 Dec 2012 13:34:40 -0500
Subject: [PATCH 1/3] Set up for QNXNTO OS

This tells GHC some things about how to build for BlackBerry 10
---
 aclocal.m4  |6 ++
 compiler/main/DriverPipeline.hs |2 +-
 compiler/utils/Platform.hs  |2 ++
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/aclocal.m4 b/aclocal.m4
index 78e758e..94e1887 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -238,6 +238,9 @@ AC_DEFUN([FPTOOLS_SET_HASKELL_PLATFORM_VARS],
 osf3)
 test -z "[$]2" || eval "[$]2=OSOsf3"
 ;;
+nto-qnx)
+test -z "[$]2" || eval "[$]2=OSQNXNTO"
+;;
 dragonfly|osf1|hpux|linuxaout|freebsd2|cygwin32|gnu|nextstep2|nextstep3|sunos4|ultrix|irix|aix)
 test -z "[$]2" || eval "[$]2=OSUnknown"
 ;;
@@ -1820,6 +1823,9 @@ case "$1" in
 #  i686-gentoo-freebsd8.2
 $2="freebsd"
 ;;
+  nto-qnx*)
+$2="nto-qnx"
+;;
   *)
 echo "Unknown OS $1"
 exit 1
diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs
index d0e1ca8..fd5694f 100644
--- a/compiler/main/DriverPipeline.hs
+++ b/compiler/main/DriverPipeline.hs
@@ -1748,7 +1748,7 @@ linkBinary dflags o_files dep_packages = do
 let os = platformOS (targetPlatform dflags)
 in if os == OSOsf3 then ["-lpthread", "-lexc"]
else if os `elem` [OSMinGW32, OSFreeBSD, OSOpenBSD,
-  OSNetBSD, OSHaiku]
+  OSNetBSD, OSHaiku, OSQNXNTO]
then []
else ["-lpthread"]
  | otherwise   = []
diff --git a/compiler/utils/Platform.hs b/compiler/utils/Platform.hs
index 76c9fa3..661e03a 100644
--- a/compiler/utils/Platform.hs
+++ b/compiler/utils/Platform.hs
@@ -69,6 +69,7 @@ data OS
 | OSKFreeBSD
 | OSHaiku
 | OSOsf3
+| OSQNXNTO
 deriving (Read, Show, Eq)
 
 -- | ARM Instruction Set Architecture, Extensions and ABI
@@ -110,6 +111,7 @@ osElfTarget OSKFreeBSD  = True
 osElfTarget OSHaiku = True
 osElfTarget OSOsf3  = False -- I don't know if this is right, but as
 -- per comment below it's safe
+osElfTarget OSQNXNTO= False
 osElfTarget OSUnknown   = False
  -- Defaulting to False is safe; it means don't rely on any
  -- ELF-specific functionality.  It is important to have a default for
-- 
1.7.10.4

>From 02d3e695d227690f9036abaab7ceea47e2538be3 Mon Sep 17 00:00:00 2001
From: Gabor Greif 
Date: Mon, 9 Jan 2012 21:35:34 +0100
Subject: [PATCH 2/3] when we have TARGETPLATFORM != HOSTPLATFORM we have to
 switch in different tools/options

Conflicts:
	rules/build-package-way.mk
	rules/hs-suffix-rules-srcdir.mk
	rules/shell-wrapper.mk
---
 rules/build-dependencies.mk |3 +++
 rules/build-package-data.mk |7 +++
 rules/distdir-way-opts.mk   |4 
 rules/hs-suffix-rules-srcdir.mk |5 +
 rules/shell-wrapper.mk  |7 +++
 5 files changed, 26 insertions(+)

diff --git a/rules/build-dependencies.mk b/rules/build-dependencies.mk
index 4a4f563..a3ae398 100644
--- a/rules/build-dependencies.mk
+++ b/rules/build-dependencies.mk
@@ -24,6 +24,9 @@ $1_$2_C_FILES_DEPS = $$(filter-out $$($1_$2_C_FILES_NODEPS),$$($1_$2_C_FILES))
 
 $1_$2_MKDEPENDHS_FLAGS = -dep-makefile $$($1_$2_depfile_haskell).tmp $$(foreach way,$$($1_$2_WAYS),-dep-suffix "$$(patsubst %o,%,$$($$(way)_osuf))")
 $1_$2_MKDEPENDHS_FLAGS += -include-pkg-deps
+ifneq "$(TARGETPLATFORM)" "$(HOSTPLATFORM)"
+$1_$2_MKDEPENDHS_FLAGS += -DCOMPILING_GHC
+endif
 
 ifneq "$$(NO_GENERATED_MAKEFILE_RULES)" "YES"
 
diff --git a/rules/build-package-data.mk b/rules/build-package-data.mk
index bbe8652..0cc8c96 100644
--- a/rules/build-package-data.mk
+++ b/rules/build-package-data.mk
@@ -74,6 +74,13 @@ ifeq "$3" "0"
 $1_$2_CONFIGURE_OPTS += $$(BOOT_PKG_CONSTRAINTS)
 endif
 
+ifeq "$3" "1"
+ifneq "$(TARGETPLATFORM)" "$(HOSTPLATFORM)"
+$1_$2_CONFIGURE_OPTS += --configure-option=--host=$(HOSTPLATFORM)
+$1_$2_CONFIGURE_OPTS += --configure-option=--target=$(TARGETPLATFORM)
+endif
+endif
+
 $1_$2_CONFIGURE_OPTS += --with-gcc="$$(CC_STAGE$3)"
 $1_$2_CONFIGURE_OPTS += --configure-option=--with-cc="$$(CC_STAGE$3)"
 $1_$2_CONFIGURE_OPTS += --with-ar="$$(AR_STAGE$3)"
diff --git a/rules/distdir-way-opts.mk b/rules/distdir-way-opts.mk
index 4d27bbf..e71b9d4 100644
--- a/rules/distdir-way-opts.mk
+++ b/rules/distdir-way-opts.mk
@@ -194,6 +194,10 @@ ifneq ($$(strip $$($1_$2_DIST_LD_OPTS)),)
 $1_$2_$3_HSC2HS_LD_OPTS:=$$(shell for i in $$($

Re: [PATCH] [base] CLK_TCK issue for QNXNTO

2012-12-11 Thread Stephen Paul Weber

Somebody claiming to be Stephen Paul Weber wrote:

Somebody claiming to be Stephen Paul Weber wrote:
When I try to build base for QNXNTO (BlackBerry 10) using my 
cross-compiler I get an error about "test_array is not of static 
size" or similar.

Looking up CLK_TCK in the QNXNTO time.h:

/* CLK_TCK removed in 1003.1-2001 */
# define CLK_TCK _sysconf(3) /* 3 == _SC_CLK_TCK */


The attached patch solves this in a non-QNX-specific way that I think is a 
good way forward, but I am of course open to any other suggestions.


--
Stephen Paul Weber, @singpolyma
See  for how I prefer to be contacted
edition right joseph
>From 3690bb13bf0879c9112d47fd2195b9f2683e1b07 Mon Sep 17 00:00:00 2001
From: Stephen Paul Weber 
Date: Tue, 11 Dec 2012 19:10:38 -0500
Subject: [PATCH] Move CLK_TCK check out to a C file

This removes the assumption that CLK_TCK is a constant (which is not
true on QNXNTO).
---
 System/CPUTime.hsc |   21 +++--
 base.cabal |1 +
 cbits/sysconf.c|   19 +++
 3 files changed, 23 insertions(+), 18 deletions(-)
 create mode 100644 cbits/sysconf.c

diff --git a/System/CPUTime.hsc b/System/CPUTime.hsc
index 8934a7e..4d988a7 100644
--- a/System/CPUTime.hsc
+++ b/System/CPUTime.hsc
@@ -43,11 +43,6 @@ import Foreign.C
 import System.IO.Unsafe (unsafePerformIO)
 #endif
 
--- For _SC_CLK_TCK
-#if HAVE_UNISTD_H
-#include 
-#endif
-
 -- For struct rusage
 #if !defined(mingw32_HOST_OS) && !defined(irix_HOST_OS)
 # if HAVE_SYS_RESOURCE_H
@@ -60,11 +55,6 @@ import System.IO.Unsafe (unsafePerformIO)
 #include 
 #endif
 
--- for CLK_TCK
-#if HAVE_TIME_H
-#include 
-#endif
-
 -- for struct tms
 #if HAVE_SYS_TIMES_H
 #include 
@@ -185,13 +175,8 @@ cpuTimePrecision = round ((1::Integer) % fromIntegral (clockTicks))
 #endif
 
 #ifdef __GLASGOW_HASKELL__
+foreign import ccall unsafe clk_tck :: CLong
+
 clockTicks :: Int
-clockTicks =
-#if defined(CLK_TCK)
-(#const CLK_TCK)
-#else
-unsafePerformIO (sysconf (#const _SC_CLK_TCK) >>= return . fromIntegral)
-foreign import ccall unsafe sysconf :: CInt -> IO CLong
-#endif
+clockTicks = fromIntegral clk_tck
 #endif /* __GLASGOW_HASKELL__ */
-
diff --git a/base.cabal b/base.cabal
index 28ccdd6..05ca157 100644
--- a/base.cabal
+++ b/base.cabal
@@ -223,6 +223,7 @@ Library {
 cbits/inputReady.c
 cbits/primFloat.c
 cbits/md5.c
+cbits/sysconf.c
 include-dirs: include
 includes:HsBase.h
 install-includes:HsBase.h HsBaseConfig.h EventConfig.h WCsubst.h consUtils.h Typeable.h
diff --git a/cbits/sysconf.c b/cbits/sysconf.c
new file mode 100644
index 000..bbf7853
--- /dev/null
+++ b/cbits/sysconf.c
@@ -0,0 +1,19 @@
+#include "HsBaseConfig.h"
+
+/* For _SC_CLK_TCK */
+#if HAVE_UNISTD_H
+#include 
+#endif
+
+/* for CLK_TCK */
+#if HAVE_TIME_H
+#include 
+#endif
+
+long clk_tck(void) {
+#if defined(CLK_TCK)
+return (CLK_TCK);
+#else
+return sysconf(_SC_CLK_TCK);
+#endif
+}
-- 
1.7.10.4

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


am-deb7-64 (HEAD), build 266, Success

2012-12-11 Thread Builder
am-deb7-64 (HEAD), build 266

Build succeeded
Details: http://darcs.haskell.org/ghcBuilder/builders/am-deb7-64/266.html

git clone| Success
create mk/build.mk   | Success
get subrepos | Success
repo versions| Success
touching clean-check files   | Success
setting version date | Success
booting  | Success
configuring  | Success
creating check-remove-before | Success
compiling| Success
creating check-remove-after  | Success
compiling testremove | Success
simulating clean | Success
checking clean   | Success
making bindist   | Success
testing bindist  | Success
testing  | Success
testsuite summary| Success

Build succeeded
Details: http://darcs.haskell.org/ghcBuilder/builders/am-deb7-64/266.html

File not deleted:"compiler/ghc.cabal.old"
File not deleted:"includes/dist-derivedconstants"
File not deleted:"includes/dist-derivedconstants/header"
File not deleted:"includes/dist-derivedconstants/header/DerivedConstants.h"
File not deleted:
"includes/dist-derivedconstants/header/GHCConstantsHaskellExports.hs"
File not deleted:
"includes/dist-derivedconstants/header/GHCConstantsHaskellType.hs"
File not deleted:
"includes/dist-derivedconstants/header/GHCConstantsHaskellWrappers.hs"
File not deleted:"includes/dist-derivedconstants/header/platformConstants"
File not deleted:"includes/dist-derivedconstants/header/tmp.c"
File not deleted:"includes/dist-derivedconstants/header/tmp.o"
File not deleted:"inplace"
File not deleted:"libraries/base/include/EventConfig.h"
File not deleted:"mk/config.mk.old"
File not deleted:"mk/project.mk.old"
File not deleted:"rts/libs.depend"
File not deleted:"rts/package.conf.inplace"
File not deleted:"rts/package.conf.inplace.raw"

OVERALL SUMMARY for test run started at Sun Dec  9 02:12:44 MSK 2012
3510 total tests, which gave rise to
   11698 test cases, of which
   0 caused framework failures
8523 were skipped

3079 expected passes
  26 had missing libraries
  35 expected failures
  23 unexpected passes
  12 unexpected failures

Unexpected passes:
   codeGen/should_runT7319 (prof)
   profiling/should_compile  2410 (normal)
   profiling/should_compile  prof001 (normal)
   profiling/should_compile  prof002 (normal)
   profiling/should_run  5314 (prof)
   profiling/should_run  T2552 (prof)
   profiling/should_run  T3001 (prof_hb)
   profiling/should_run  T3001-2 (prof_hb)
   profiling/should_run  T5363 (prof)
   profiling/should_run  T5559 (prof)
   profiling/should_run  T680 (prof)
   profiling/should_run  T949 (prof)
   profiling/should_run  callstack001 (prof)
   profiling/should_run  callstack002 (prof)
   profiling/should_run  heapprof001 (prof)
   profiling/should_run  prof-doc-fib (prof)
   profiling/should_run  prof-doc-last (prof)
   profiling/should_run  profinline001 (prof)
   profiling/should_run  scc001 (prof)
   profiling/should_run  scc002 (prof)
   profiling/should_run  scc003 (prof)
   stranal/should_compilenewtype (optasm)
   thTH_spliceE5_prof (normal)

Unexpected failures:
   ../../libraries/base/tests  qsem001 [bad stdout] (normal)
   ../../libraries/base/tests  qsemn001 [exit code non-0] (normal)
   codeGen/should_run  cgrun068 [exit code non-0] (normal)
   driver  dynHelloWorld [exit code non-0] (dyn)
   dynlibs T3807 [bad exit code] (normal)
   dynlibs T5373 [bad exit code] (normal)
   ghci/scriptsT5979 [bad stderr] (ghci)
   perf/compiler   T1969 [stat not good enough] (normal)
   perf/haddockhaddock.Cabal [stat not good enough] (normal)
   perf/haddockhaddock.base [stat not good enough] (normal)
   typecheck/should_fail   T5300 [stderr mismatch] (normal)
   typecheck/should_fail   T5691 [stderr mismatch] (normal)

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[nightly] 11-Dec-2012 build of STABLE on x86_64-unknown-linux (cam-04-unx)

2012-12-11 Thread GHC Build Reports
Build description = STABLE on x86_64-unknown-linux (cam-04-unx)
Build location= /64playpen/simonmar/nightly/STABLE-cam-04-unx
Build config file = /home/simonmar/nightly/site/msrc/conf-STABLE-cam-04-unx

Nightly build started on cam-04-unx at Tue Dec 11 18:10:01 GMT 2012.
 checking out new source tree ... warning: Remote branch 
ghc-7.6 not found in upstream origin, using HEAD instead
ok.
 Building stage 1 compiler... ok.
GHC Version 7.6.1.20121207
 Building stage 2 compiler... ok.
 Building stage 3 compiler... ok.
 building source distribution ... ok.
 uploading source distribution... ok.
 building testsuite tools ... ok.
 running tests... ok (summary below).
 building compiler binary distribution... ok.
 uploading binary distribution... ok.
 running nofib (-rtsopts -O2) ... ok.
 running nofib (-rtsopts -O2 -fllvm)  ... ok.
 running nofib (-rtsopts -O2 -prof -auto-all -static)... ok.
 running nofib (-rtsopts -O2 -prof -auto-all -fllvm -static)... ok.
 publishing logs  ... ok.
Logs  are at http://www.haskell.org/ghc/dist/stable/logs
Dists are at http://www.haskell.org/ghc/dist/stable/dist
Docs  are at http://www.haskell.org/ghc/dist/stable/docs
-
Respository hashes:
.|1183080b1b45dbcaa6af1154e2e668f924598772
ghc-tarballs|18e0c37f8023abf469af991e2fc2d3b024319c27
libraries/Cabal|e7e7ce1029707a67d26e6dc29de11141734898e3
libraries/Win32|e13098aecd0489399435dbf8643e1db2272e1e02
libraries/array|8dcd15240a9c2ba142fcbd31f597b51cf2f560bf
libraries/base|56c8295c638a03676a9be8d34195e6be945ddc2c
libraries/binary|2d31cea238d0d08885c457475fc354dbf2b88976
libraries/bytestring|65e40bdf5b3a2484b36221a71b054e4400361a5f
libraries/containers|a9b7224068ae60f73baacd5f76d2c27624d90120
libraries/deepseq|4821349305c2a73efacdd58d2ba485b07eb84eda
libraries/directory|ef17afe1bd44ae10ef413146e5ade8867cb05625
libraries/filepath|2d60d0dd5d8fc924420bb238902266929f4e2cfb
libraries/ghc-prim|03144fbee792555bfd6de6184228ebaeffed2896
libraries/haskeline|f4040ab5831866c260e03fc8601edf7e1ed77049
libraries/haskell2010|d7e33da36585c250cd0bfb45b518c95e44197f3c
libraries/haskell98|c5a0db5eb4ce6a3736bf4f5caac3ff465b3dbaf9
libraries/hoopl|293d339303097641e7f14a1c0365a3801a87918d
libraries/hpc|c1b783dbbb0ab917208655c53a0af5c7538c2a0b
libraries/integer-gmp|2d9eca147f5c8b6f390eca15e03b315f67f2df01
libraries/integer-simple|47737f6f16d891b743a3d02b0a016100fd3a36d1
libraries/old-locale|47542432234f6fc406a9abf5d3f94e43d9bd10f6
libraries/old-time|cf225c367e5490201a5b04b1b8cb322f6e230d46
libraries/pretty|0a22cc0b3a4f8db876c4019013a30bfd1c0dd9a2
libraries/process|0ab69a65edae8c1a34ecee3a97b3839c833985f2
libraries/template-haskell|db0b4de55926b0bc98717c92ba543bcf9b89d024
libraries/terminfo|579d2c324e69856ff8d1ea8b5036e30c920e1973
libraries/transformers|a59fb93860f84ccd44178dcbbb82cfea7e02cd07
libraries/unix|b08de9ba4b5b6d4dc8ee43302ef99072059b2c01
libraries/utf8-string|73ca1b9def3f350ad28e55fcba077e6be3b67e93
libraries/xhtml|fb9e0bbb69e15873682a9f25d39652099a3ccac1
nofib|14bccff2c547c0e06fe8f98607b9cf18890ef051
testsuite|c96a151e2e48092efe58bfb2ba11aad428480b27
utils/haddock|3d25ea2929a9a9bd0768339b8ac5fd1b7c4670ad
utils/hsc2hs|67b8c663216690150b6f762e09b32ebbe6334ddd
-
All done!
Nightly build finished successfully at Wed Dec 12 01:35:55 GMT 2012

- GHC Test summary -

OVERALL SUMMARY for test run started at Tue Dec 11 21:38:52 GMT 2012
3402 total tests, which gave rise to
   16613 test cases, of which
  10 caused framework failures
3563 were skipped

   12537 expected passes
 367 had missing libraries
 131 expected failures
   0 unexpected passes
  15 unexpected failures

Unexpected failures:
   perf/compilerT6048 [stat not good enough] (optasm)
   perf/haddock haddock.Cabal [stat not good enough] (normal)
   perf/haddock haddock.base [stat not good enough] (normal)
   perf/haddock haddock.compiler [stat not good enough] (normal)
   safeHaskell/check/pkg01  ImpSafeOnly01 [exit code non-0] (normal)
   safeHaskell/check/pkg01  ImpSafeOnly02 [exit code non-0] (normal)
   safeHaskell/check/pkg01  ImpSafeOnly03 [stderr mismatch] (normal)
   safeHaskell/check/pkg01  ImpSafeOnly04 [exit code non-0] (normal)
   safeHaskell/check/pkg01  ImpSafeOnly05 [stderr mismatch] (normal)
   safeHaskell/check/pkg01  ImpSafeOnly06 [exit code non-0] (normal)
   safeHaskell/check/pkg01  ImpSafeOnly07 [stderr mismatch] (normal)
   safeHaskell/check/pkg01  ImpSafeOnly08 [stderr mismatch] (normal)
   safeHaskell/check/pkg01  ImpSafeOnly09

Re: Mailing list reorganisation

2012-12-11 Thread Manuel M T Chakravarty
Good plan!

Ian Lynagh :
> Hi all,
> 
> Following a recent discussion, we propose to reorganise the GHC-related
> mailing lists so that we end up with:
> 
>glasgow-haskell-users
>For user discussions
> 
>ghc-devs
>For developer discussions
> 
>ghc-commits
>For automated commit messages from the git repositories
> 
>ghc-builds
>For automated nightly build reports
> 
>ghc-tickets
>For automated messages from trac
> 
> We would remove
>cvs-ghc cvs-libraries cvs-other glasgow-haskell-bugs
> but leave the archives in place, and for now forwarding messages to
> cvs-* to ghc-devs, and glasgow-haskell-bugs to ghc-tickets.
> (cvs-libraries and cvs-other are included in this list, because we think
> they are mainly used by libraries that GHC HQ maintains, or by GHC's
> lagging repos of libraries that other people maintain).
> 
> The initial subscriber lists for ghc-devs, ghc-commits and ghc-builds
> would be the union of the subscribers of cvs-ghc, cvs-libraries and
> cvs-other. For ghc-tickets it would be the subscriber list for
> glasgow-haskell-bugs.
> 
> Does that sound reasonable? Does anyone have any further questions or
> comments?
> 
> 
> Thanks
> Ian
> 
> 
> ___
> Glasgow-haskell-users mailing list
> glasgow-haskell-us...@haskell.org
> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users


___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: ghc] master: Merge branch 'master' of http://darcs.haskell.org/ghc (d7d25db)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/d7d25db3e58f3edfb950ebfa466c1e1e06d175d6

>---

commit d7d25db3e58f3edfb950ebfa466c1e1e06d175d6
Merge: 609aecb... 1435eef...
Author: Ian Lynagh 
Date:   Sat Dec 8 16:24:00 2012 +

Merge branch 'master' of http://darcs.haskell.org/ghc

 compiler/typecheck/TcTyClsDecls.lhs |   47 ++
 1 files changed, 25 insertions(+), 22 deletions(-)



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: ghc] master: Add replaceDynFlags to the ContainsDynFlags class (e5182b7)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/e5182b7c8c7466a81de6d82d99e7d272b968691b

>---

commit e5182b7c8c7466a81de6d82d99e7d272b968691b
Author: Ian Lynagh 
Date:   Sat Dec 8 17:16:07 2012 +

Add replaceDynFlags to the ContainsDynFlags class

>---

 compiler/main/DynFlags.hs|1 +
 compiler/main/HscTypes.lhs   |4 
 compiler/typecheck/TcRnTypes.lhs |2 ++
 3 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index ceae7c2..9d2b372 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -707,6 +707,7 @@ class HasDynFlags m where
 
 class ContainsDynFlags t where
 extractDynFlags :: t -> DynFlags
+replaceDynFlags :: t -> DynFlags -> t
 
 data ProfAuto
   = NoProfAuto -- ^ no SCC annotations added
diff --git a/compiler/main/HscTypes.lhs b/compiler/main/HscTypes.lhs
index 937d09a..fce81da 100644
--- a/compiler/main/HscTypes.lhs
+++ b/compiler/main/HscTypes.lhs
@@ -326,6 +326,10 @@ data HscEnv
 -- 'TcRunTypes.TcGblEnv'
  }
 
+instance ContainsDynFlags HscEnv where
+extractDynFlags env = hsc_dflags env
+replaceDynFlags env dflags = env {hsc_dflags = dflags}
+
 -- | Retrieve the ExternalPackageState cache.
 hscEPS :: HscEnv -> IO ExternalPackageState
 hscEPS hsc_env = readIORef (hsc_EPS hsc_env)
diff --git a/compiler/typecheck/TcRnTypes.lhs b/compiler/typecheck/TcRnTypes.lhs
index 0aff832..8388b25 100644
--- a/compiler/typecheck/TcRnTypes.lhs
+++ b/compiler/typecheck/TcRnTypes.lhs
@@ -181,6 +181,8 @@ data Env gbl lcl
 
 instance ContainsDynFlags (Env gbl lcl) where
 extractDynFlags env = hsc_dflags (env_top env)
+replaceDynFlags env dflags
+= env {env_top = replaceDynFlags (env_top env) dflags}
 
 instance ContainsModule gbl => ContainsModule (Env gbl lcl) where
 extractModule env = extractModule (env_gbl env)



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: ghc] master: Add a function to change DynFlags to be suitable for compiling for way=dynamic (0c4a9f3)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/0c4a9f38637dfc3bc8fd48e8ba6bf64da51b727b

>---

commit 0c4a9f38637dfc3bc8fd48e8ba6bf64da51b727b
Author: Ian Lynagh 
Date:   Sat Dec 8 19:03:00 2012 +

Add a function to change DynFlags to be suitable for compiling for 
way=dynamic

Will be used when we are compiling with -dynamic-too. This needed a
little refactoring of the "addWay" code to allow the code to be shared.

>---

 compiler/main/DynFlags.hs |   72 ++---
 1 files changed, 48 insertions(+), 24 deletions(-)

diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index 9d2b372..186c566 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -27,6 +27,7 @@ module DynFlags (
 wopt, wopt_set, wopt_unset,
 xopt, xopt_set, xopt_unset,
 lang_set,
+doDynamicToo,
 DynFlags(..),
 HasDynFlags(..), ContainsDynFlags(..),
 RtsOptsEnabled(..),
@@ -1047,16 +1048,16 @@ wayGeneralFlags _ WayPar  = [Opt_Parallel]
 wayGeneralFlags _ WayGran = [Opt_GranMacros]
 wayGeneralFlags _ WayNDP  = []
 
-wayExtras :: Platform -> Way -> DynP ()
-wayExtras _ WayThreaded = return ()
-wayExtras _ WayDebug= return ()
-wayExtras _ WayDyn  = return ()
-wayExtras _ WayProf = return ()
-wayExtras _ WayEventLog = return ()
-wayExtras _ WayPar  = exposePackage "concurrent"
-wayExtras _ WayGran = exposePackage "concurrent"
-wayExtras _ WayNDP  = do setExtensionFlag Opt_ParallelArrays
- setGeneralFlag Opt_Vectorise
+wayExtras :: Platform -> Way -> DynFlags -> DynFlags
+wayExtras _ WayThreaded dflags = dflags
+wayExtras _ WayDebugdflags = dflags
+wayExtras _ WayDyn  dflags = dflags
+wayExtras _ WayProf dflags = dflags
+wayExtras _ WayEventLog dflags = dflags
+wayExtras _ WayPar  dflags = exposePackage' "concurrent" dflags
+wayExtras _ WayGran dflags = exposePackage' "concurrent" dflags
+wayExtras _ WayNDP  dflags = setExtensionFlag' Opt_ParallelArrays
+   $ setGeneralFlag' Opt_Vectorise dflags
 
 wayOptc :: Platform -> Way -> [String]
 wayOptc platform WayThreaded = case platformOS platform of
@@ -,6 +1112,15 @@ wayOptP _ WayPar  = ["-D__PARALLEL_HASKELL__"]
 wayOptP _ WayGran = ["-D__GRANSIM__"]
 wayOptP _ WayNDP  = []
 
+doDynamicToo :: DynFlags -> DynFlags
+doDynamicToo dflags0 = let dflags1 = unSetGeneralFlag' Opt_Static dflags0
+   dflags2 = addWay' WayDyn dflags1
+   dflags3 = dflags2 {
+ hiSuf = dynHiSuf dflags2,
+ objectSuf = dynObjectSuf dflags2
+ }
+   in dflags3
+
 -
 
 -- | Used by 'GHC.newSession' to partially initialize a new 'DynFlags' value
@@ -2865,11 +2875,14 @@ setDumpFlag dump_flag = NoArg (setDumpFlag' dump_flag)
 
 --
 addWay :: Way -> DynP ()
-addWay w = do upd (\dfs -> dfs { ways = w : ways dfs })
-  dfs <- liftEwM getCmdLineState
-  let platform = targetPlatform dfs
-  wayExtras platform w
-  mapM_ setGeneralFlag $ wayGeneralFlags platform w
+addWay w = upd (addWay' w)
+
+addWay' :: Way -> DynFlags -> DynFlags
+addWay' w dflags0 = let platform = targetPlatform dflags0
+dflags1 = dflags0 { ways = w : ways dflags0 }
+dflags2 = wayExtras platform w dflags1
+dflags3 = foldr setGeneralFlag' dflags2 
(wayGeneralFlags platform w)
+in dflags3
 
 removeWay :: Way -> DynP ()
 removeWay w = do
@@ -2883,8 +2896,13 @@ removeWay w = do
 
 --
 setGeneralFlag, unSetGeneralFlag :: GeneralFlag -> DynP ()
-setGeneralFlag   f = upd (\dfs -> gopt_set dfs f)
-unSetGeneralFlag f = upd (\dfs -> gopt_unset dfs f)
+setGeneralFlag   f = upd (setGeneralFlag' f)
+unSetGeneralFlag f = upd (unSetGeneralFlag' f)
+
+setGeneralFlag' :: GeneralFlag -> DynFlags -> DynFlags
+setGeneralFlag' f dflags = gopt_set dflags f
+unSetGeneralFlag' :: GeneralFlag -> DynFlags -> DynFlags
+unSetGeneralFlag' f dflags = gopt_unset dflags f
 
 --
 setWarningFlag, unSetWarningFlag :: WarningFlag -> DynP ()
@@ -2893,17 +2911,20 @@ unSetWarningFlag f = upd (\dfs -> wopt_unset dfs f)
 
 --
 setExtensionFlag, unSetExtensionFlag :: ExtensionFlag -> DynP ()
-setExtensionFlag f = do upd (\dfs -> xopt_set dfs f)
-sequence_ deps
+setExtensionFlag f = upd (setExtensionFlag' f)
+unSetExtensionFlag f = upd (unSetE

[commit: ghc] master: Fix loading dynamic interfaces when using -dynamic-too (ecd9676)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/ecd967612877e1965ddebefe9b83acd837bb413a

>---

commit ecd967612877e1965ddebefe9b83acd837bb413a
Author: Ian Lynagh 
Date:   Sat Dec 8 19:52:24 2012 +

Fix loading dynamic interfaces when using -dynamic-too

We need to have WayDyn in the ways in the DynFlags, or the interface
loader will fail.

-dynamic-too now correctly evaluates whether or not it is possible to
build for the dynamic way too, but doesn't actually do so yet.

>---

 compiler/iface/LoadIface.lhs |2 +-
 compiler/main/DynFlags.hs|   24 ++--
 compiler/typecheck/TcRnMonad.lhs |9 +
 3 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/compiler/iface/LoadIface.lhs b/compiler/iface/LoadIface.lhs
index 6d23419..2c36fa9 100644
--- a/compiler/iface/LoadIface.lhs
+++ b/compiler/iface/LoadIface.lhs
@@ -561,7 +561,7 @@ findAndReadIface doc_str mod hi_boot_file
   when (gopt Opt_BuildDynamicToo dflags) $ do
   let ref = canGenerateDynamicToo dflags
   b <- liftIO $ readIORef ref
-  when b $ do
+  when b $ withDoDynamicToo $ do
   let dynFilePath = replaceExtension filePath (dynHiSuf 
dflags)
   r <- read_file dynFilePath
   case r of
diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index 186c566..5e2638c 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -970,7 +970,7 @@ data Way
   | WayGran
   | WayNDP
   | WayDyn
-  deriving (Eq,Ord)
+  deriving (Eq, Ord, Show)
 
 allowed_combination :: [Way] -> Bool
 allowed_combination way = and [ x `allowedWith` y
@@ -1119,7 +1119,8 @@ doDynamicToo dflags0 = let dflags1 = unSetGeneralFlag' 
Opt_Static dflags0
  hiSuf = dynHiSuf dflags2,
  objectSuf = dynObjectSuf dflags2
  }
-   in dflags3
+   dflags4 = updateWays dflags3
+   in dflags4
 
 -
 
@@ -1759,14 +1760,8 @@ parseDynamicFlagsFull activeFlags cmdline dflags0 args = 
do
 
   -- check for disabled flags in safe haskell
   let (dflags2, sh_warns) = safeFlagCheck cmdline dflags1
-
-  theWays = sort $ nub $ ways dflags2
-  theBuildTag = mkBuildTag (filter (not . wayRTSOnly) theWays)
-  dflags3 = dflags2 {
-ways= theWays,
-buildTag= theBuildTag,
-rtsBuildTag = mkBuildTag theWays
-}
+  dflags3 = updateWays dflags2
+  theWays = ways dflags3
 
   unless (allowed_combination theWays) $
   throwGhcException (CmdLineError ("combination not supported: "  ++
@@ -1778,6 +1773,15 @@ parseDynamicFlagsFull activeFlags cmdline dflags0 args = 
do
 
   return (dflags4, leftover, consistency_warnings ++ sh_warns ++ warns)
 
+updateWays :: DynFlags -> DynFlags
+updateWays dflags
+= let theWays = sort $ nub $ ways dflags
+  theBuildTag = mkBuildTag (filter (not . wayRTSOnly) theWays)
+  in dflags {
+ ways= theWays,
+ buildTag= theBuildTag,
+ rtsBuildTag = mkBuildTag theWays
+ }
 
 -- | Check (and potentially disable) any extensions that aren't allowed
 -- in safe mode.
diff --git a/compiler/typecheck/TcRnMonad.lhs b/compiler/typecheck/TcRnMonad.lhs
index d866893..1d27729 100644
--- a/compiler/typecheck/TcRnMonad.lhs
+++ b/compiler/typecheck/TcRnMonad.lhs
@@ -306,6 +306,15 @@ getGhcMode = do { env <- getTopEnv; return (ghcMode 
(hsc_dflags env)) }
 \end{code}
 
 \begin{code}
+withDoDynamicToo :: TcRnIf gbl lcl a -> TcRnIf gbl lcl a
+withDoDynamicToo m = do env <- getEnv
+let dflags = extractDynFlags env
+dflags' = doDynamicToo dflags
+env' = replaceDynFlags env dflags'
+setEnv env' m
+\end{code}
+
+\begin{code}
 getEpsVar :: TcRnIf gbl lcl (TcRef ExternalPackageState)
 getEpsVar = do { env <- getTopEnv; return (hsc_EPS env) }
 



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: ghc] master: Merge branch 'master' of http://darcs.haskell.org/ghc (cea7aa3)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/cea7aa335b52c9fbb12fbfecc5a9ad69b240c3de

>---

commit cea7aa335b52c9fbb12fbfecc5a9ad69b240c3de
Merge: d7d25db... 713c514...
Author: Ian Lynagh 
Date:   Sat Dec 8 16:43:13 2012 +

Merge branch 'master' of http://darcs.haskell.org/ghc




___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: ghc] master: Merge branch 'master' of http://darcs.haskell.org/ghc (497cb61)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/497cb612ec598aa925fc33042ca0e49e59066af1

>---

commit 497cb612ec598aa925fc33042ca0e49e59066af1
Merge: ecd9676... d684114...
Author: Ian Lynagh 
Date:   Tue Dec 11 16:35:38 2012 +

Merge branch 'master' of http://darcs.haskell.org/ghc

 compiler/typecheck/TcGenGenerics.lhs |   10 --
 docs/users_guide/glasgow_exts.xml|3 +++
 docs/users_guide/using.xml   |   27 +--
 rts/Linker.c |1 +
 rts/STM.c|   24 +---
 sync-all |   27 ++-
 6 files changed, 64 insertions(+), 28 deletions(-)



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: ghc] master: Tweak how 'count' is handled in the nativeCodeGen (8246c7a)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/8246c7a4aff8ac763dafc6bdd63f647accafab06

>---

commit 8246c7a4aff8ac763dafc6bdd63f647accafab06
Author: Ian Lynagh 
Date:   Tue Dec 11 18:35:28 2012 +

Tweak how 'count' is handled in the nativeCodeGen

We were always passing 0 to cmmNativeGenStream, so now the 0 is just
hardcoded there.

>---

 compiler/nativeGen/AsmCodeGen.lhs |9 -
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/compiler/nativeGen/AsmCodeGen.lhs 
b/compiler/nativeGen/AsmCodeGen.lhs
index ae5cd6f..e8781f3 100644
--- a/compiler/nativeGen/AsmCodeGen.lhs
+++ b/compiler/nativeGen/AsmCodeGen.lhs
@@ -257,7 +257,7 @@ nativeCodeGen' dflags ncgImpl h us cmms
 -- Pretty if it weren't for the fact that we do lots of little
 -- printDocs here (in order to do codegen in constant space).
 bufh <- newBufHandle h
-((imports, prof), us') <- cmmNativeGenStream dflags ncgImpl us 
split_cmms (bufh, ([], [])) 0
+((imports, prof), us') <- cmmNativeGenStream dflags ncgImpl us 
split_cmms (bufh, ([], []))
 bFlush bufh
 
 let (native, colorStats, linearStats)
@@ -317,10 +317,9 @@ cmmNativeGenStream :: (Outputable statics, Outputable 
instr, Instruction instr)
   -> UniqSupply
   -> Stream IO RawCmmGroup ()
   -> NativeGenState statics instr
-  -> Int
   -> IO (NativeGenAcc statics instr, UniqSupply)
 
-cmmNativeGenStream dflags ncgImpl us cmm_stream ngs@(h, nga) count
+cmmNativeGenStream dflags ncgImpl us cmm_stream ngs@(h, nga)
  = do
 r <- Stream.runStream cmm_stream
 case r of
@@ -329,8 +328,8 @@ cmmNativeGenStream dflags ncgImpl us cmm_stream ngs@(h, 
nga) count
 (impAcc, profAcc) ->
   return ((reverse impAcc, reverse profAcc), us)
   Right (cmms, cmm_stream') -> do
-(nga',us') <- cmmNativeGens dflags ncgImpl us cmms ngs count
-cmmNativeGenStream dflags ncgImpl us' cmm_stream' (h, nga') count
+(nga',us') <- cmmNativeGens dflags ncgImpl us cmms ngs 0
+cmmNativeGenStream dflags ncgImpl us' cmm_stream' (h, nga')
 
 -- | Do native code generation on all these cmms.
 --



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: ghc] master: Small refactoring: Use more idiomatic strictness forcing in AsmCodeGen (48bb69a)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/48bb69ac4d5de847774657042d6b935d49445cb0

>---

commit 48bb69ac4d5de847774657042d6b935d49445cb0
Author: Ian Lynagh 
Date:   Tue Dec 11 17:04:06 2012 +

Small refactoring: Use more idiomatic strictness forcing in AsmCodeGen

>---

 compiler/nativeGen/AsmCodeGen.lhs |   12 +---
 1 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/compiler/nativeGen/AsmCodeGen.lhs 
b/compiler/nativeGen/AsmCodeGen.lhs
index 9917619..38cd7b7 100644
--- a/compiler/nativeGen/AsmCodeGen.lhs
+++ b/compiler/nativeGen/AsmCodeGen.lhs
@@ -80,6 +80,7 @@ import qualified Stream
 
 import Data.List
 import Data.Maybe
+import Control.Exception
 import Control.Monad
 import System.IO
 
@@ -363,19 +364,16 @@ cmmNativeGens dflags ncgImpl h us (cmm : cmms) impAcc 
profAcc count
 $ withPprStyleDoc dflags (mkCodeStyle AsmStyle)
 $ vcat $ map (pprNatCmmDecl ncgImpl) native
 
-   -- carefully evaluate this strictly.  Binding it with 'let'
-   -- and then using 'seq' doesn't work, because the let
-   -- apparently gets inlined first.
-lsPprNative <- return $!
+let !lsPprNative =
 if  dopt Opt_D_dump_asm   dflags
  || dopt Opt_D_dump_asm_stats dflags
 then native
 else []
 
-count' <- return $! count + 1;
+let !count' = count + 1
 
 -- force evaulation all this stuff to avoid space leaks
-{-# SCC "seqString" #-} seqString (showSDoc dflags $ vcat $ map ppr 
imports) `seq` return ()
+{-# SCC "seqString" #-} evaluate $ seqString (showSDoc dflags $ vcat $ 
map ppr imports)
 
 cmmNativeGens dflags ncgImpl
 h us' cmms
@@ -384,7 +382,7 @@ cmmNativeGens dflags ncgImpl h us (cmm : cmms) impAcc 
profAcc count
 count'
 
  where  seqString []= ()
-seqString (x:xs)= x `seq` seqString xs `seq` ()
+seqString (x:xs)= x `seq` seqString xs
 
 
 -- | Complete native code generation phase for a single top-level chunk of Cmm.



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: ghc] master: Implement the -dynamic-too optimised path for the NCG (bd8f7fc)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/bd8f7fc56b84369f4e820263c0bcdc85760de6d4

>---

commit bd8f7fc56b84369f4e820263c0bcdc85760de6d4
Author: Ian Lynagh 
Date:   Tue Dec 11 20:41:18 2012 +

Implement the -dynamic-too optimised path for the NCG

We don't yet have the slow path, for when we have to fall back to
separate compilation.

We also only currently handle the case qhere we're compiling Haskell
code with the NCG.

 compiler/iface/LoadIface.lhs  |   28 +++-
 compiler/iface/MkIface.lhs|5 +--
 compiler/main/CodeOutput.lhs  |   14 ++--
 compiler/main/DriverPipeline.hs   |   15 ++--
 compiler/main/DynFlags.hs |   13 +++-
 compiler/main/HscMain.hs  |9 +-
 compiler/nativeGen/AsmCodeGen.lhs |   64 ++--
 7 files changed, 89 insertions(+), 59 deletions(-)


Diff suppressed because of size. To see it, use:

git show bd8f7fc56b84369f4e820263c0bcdc85760de6d4

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: ghc] master: Add more plumbing to the nativeCodeGen (8685535)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/8685535cfdfc68223162070c50d604072c3213b7

>---

commit 8685535cfdfc68223162070c50d604072c3213b7
Author: Ian Lynagh 
Date:   Tue Dec 11 19:09:01 2012 +

Add more plumbing to the nativeCodeGen

This patch adds more of the plumbing necessary to allow the nativeGen
to build multiple ways in a single compilation.

>---

 compiler/nativeGen/AsmCodeGen.lhs |   86 -
 1 files changed, 56 insertions(+), 30 deletions(-)

diff --git a/compiler/nativeGen/AsmCodeGen.lhs 
b/compiler/nativeGen/AsmCodeGen.lhs
index e8781f3..ce62a64 100644
--- a/compiler/nativeGen/AsmCodeGen.lhs
+++ b/compiler/nativeGen/AsmCodeGen.lhs
@@ -251,15 +251,35 @@ nativeCodeGen' :: (Outputable statics, Outputable instr, 
Instruction instr)
-> Handle -> UniqSupply -> Stream IO RawCmmGroup () -> IO 
UniqSupply
 nativeCodeGen' dflags ncgImpl h us cmms
  = do
-let platform = targetPlatform dflags
-split_cmms  = Stream.map add_split cmms
+let split_cmms  = Stream.map add_split cmms
 -- BufHandle is a performance hack.  We could hide it inside
 -- Pretty if it weren't for the fact that we do lots of little
 -- printDocs here (in order to do codegen in constant space).
 bufh <- newBufHandle h
-((imports, prof), us') <- cmmNativeGenStream dflags ncgImpl us 
split_cmms (bufh, ([], []))
+let ngss = [(bufh, ([], []))]
+(ngss', us') <- cmmNativeGenStream dflags ncgImpl us split_cmms ngss
+mapM_ (finishNativeGen dflags ncgImpl) ngss'
+
+return us'
+
+ where  add_split tops
+| gopt Opt_SplitObjs dflags = split_marker : tops
+| otherwise = tops
+
+split_marker = CmmProc mapEmpty mkSplitMarkerLabel []
+   (ofBlockList (panic "split_marker_entry") [])
+
+
+finishNativeGen :: Instruction instr
+=> DynFlags
+-> NcgImpl statics instr jumpDest
+-> NativeGenState statics instr
+-> IO ()
+finishNativeGen dflags ncgImpl (bufh@(BufHandle _ _ h), (imports, prof))
+ = do
 bFlush bufh
 
+let platform = targetPlatform dflags
 let (native, colorStats, linearStats)
 = unzip3 prof
 
@@ -302,34 +322,24 @@ nativeCodeGen' dflags ncgImpl h us cmms
 $ withPprStyleDoc dflags (mkCodeStyle AsmStyle)
 $ makeImportsDoc dflags (concat imports)
 
-return us'
-
- where  add_split tops
-| gopt Opt_SplitObjs dflags = split_marker : tops
-| otherwise = tops
-
-split_marker = CmmProc mapEmpty mkSplitMarkerLabel []
-   (ofBlockList (panic "split_marker_entry") [])
-
 cmmNativeGenStream :: (Outputable statics, Outputable instr, Instruction instr)
   => DynFlags
   -> NcgImpl statics instr jumpDest
   -> UniqSupply
   -> Stream IO RawCmmGroup ()
-  -> NativeGenState statics instr
-  -> IO (NativeGenAcc statics instr, UniqSupply)
+  -> [NativeGenState statics instr]
+  -> IO ([NativeGenState statics instr], UniqSupply)
 
-cmmNativeGenStream dflags ncgImpl us cmm_stream ngs@(h, nga)
- = do
-r <- Stream.runStream cmm_stream
-case r of
+cmmNativeGenStream dflags ncgImpl us cmm_stream ngss
+ = do r <- Stream.runStream cmm_stream
+  case r of
   Left () ->
-case nga of
-(impAcc, profAcc) ->
-  return ((reverse impAcc, reverse profAcc), us)
+  return ([ (h, (reverse impAcc, reverse profAcc))
+  | (h, (impAcc, profAcc)) <- ngss ]
+ , us)
   Right (cmms, cmm_stream') -> do
-(nga',us') <- cmmNativeGens dflags ncgImpl us cmms ngs 0
-cmmNativeGenStream dflags ncgImpl us' cmm_stream' (h, nga')
+  (ngss',us') <- cmmNativeGens dflags ncgImpl us cmms ngss
+  cmmNativeGenStream dflags ncgImpl us' cmm_stream' ngss'
 
 -- | Do native code generation on all these cmms.
 --
@@ -338,14 +348,30 @@ cmmNativeGens :: (Outputable statics, Outputable instr, 
Instruction instr)
   -> NcgImpl statics instr jumpDest
   -> UniqSupply
   -> [RawCmmDecl]
-  -> NativeGenState statics instr
-  -> Int
-  -> IO (NativeGenAcc statics instr, UniqSupply)
+  -> [NativeGenState statics instr]
+  -> IO ([NativeGenState statics instr], UniqSupply)
+
+cmmNativeGens _  _   us _[] = return ([], us)
+cmmNativeGens dflags ncgImpl us cmms (ngs : ngss)
+ = do (ngs', us') 

[commit: ghc] master: Package the NativeGen state up into a named type (d23148a)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/d23148a9bbec06bc737b13572e5ee8c353060b29

>---

commit d23148a9bbec06bc737b13572e5ee8c353060b29
Author: Ian Lynagh 
Date:   Tue Dec 11 18:17:57 2012 +

Package the NativeGen state up into a named type

This will make it a little more pleasant to have the nativegen
build for multiple ways at once.

>---

 compiler/nativeGen/AsmCodeGen.lhs |   61 -
 1 files changed, 26 insertions(+), 35 deletions(-)

diff --git a/compiler/nativeGen/AsmCodeGen.lhs 
b/compiler/nativeGen/AsmCodeGen.lhs
index 38cd7b7..ae5cd6f 100644
--- a/compiler/nativeGen/AsmCodeGen.lhs
+++ b/compiler/nativeGen/AsmCodeGen.lhs
@@ -238,6 +238,13 @@ noAllocMoreStack amount _
 ++  "   You can still file a bug report if you like.\n"
 
 
+type NativeGenState statics instr = (BufHandle, NativeGenAcc statics instr)
+type NativeGenAcc statics instr
+= ([[CLabel]],
+   [([NatCmmDecl statics instr],
+ Maybe [Color.RegAllocStats statics instr],
+ Maybe [Linear.RegAllocStats])])
+
 nativeCodeGen' :: (Outputable statics, Outputable instr, Instruction instr)
=> DynFlags
-> NcgImpl statics instr jumpDest
@@ -250,7 +257,7 @@ nativeCodeGen' dflags ncgImpl h us cmms
 -- Pretty if it weren't for the fact that we do lots of little
 -- printDocs here (in order to do codegen in constant space).
 bufh <- newBufHandle h
-(imports, prof, us') <- cmmNativeGenStream dflags ncgImpl bufh us 
split_cmms [] [] 0
+((imports, prof), us') <- cmmNativeGenStream dflags ncgImpl us 
split_cmms (bufh, ([], [])) 0
 bFlush bufh
 
 let (native, colorStats, linearStats)
@@ -307,55 +314,39 @@ nativeCodeGen' dflags ncgImpl h us cmms
 cmmNativeGenStream :: (Outputable statics, Outputable instr, Instruction instr)
   => DynFlags
   -> NcgImpl statics instr jumpDest
-  -> BufHandle
   -> UniqSupply
   -> Stream IO RawCmmGroup ()
-  -> [[CLabel]]
-  -> [ ([NatCmmDecl statics instr],
-   Maybe [Color.RegAllocStats statics instr],
-   Maybe [Linear.RegAllocStats]) ]
+  -> NativeGenState statics instr
   -> Int
-  -> IO ( [[CLabel]],
-  [([NatCmmDecl statics instr],
-  Maybe [Color.RegAllocStats statics instr],
-  Maybe [Linear.RegAllocStats])],
-  UniqSupply )
+  -> IO (NativeGenAcc statics instr, UniqSupply)
 
-cmmNativeGenStream dflags ncgImpl h us cmm_stream impAcc profAcc count
+cmmNativeGenStream dflags ncgImpl us cmm_stream ngs@(h, nga) count
  = do
 r <- Stream.runStream cmm_stream
 case r of
-  Left () -> return (reverse impAcc, reverse profAcc, us)
+  Left () ->
+case nga of
+(impAcc, profAcc) ->
+  return ((reverse impAcc, reverse profAcc), us)
   Right (cmms, cmm_stream') -> do
-(impAcc,profAcc,us') <- cmmNativeGens dflags ncgImpl h us cmms
-  impAcc profAcc count
-cmmNativeGenStream dflags ncgImpl h us' cmm_stream'
-  impAcc profAcc count
-
+(nga',us') <- cmmNativeGens dflags ncgImpl us cmms ngs count
+cmmNativeGenStream dflags ncgImpl us' cmm_stream' (h, nga') count
 
 -- | Do native code generation on all these cmms.
 --
 cmmNativeGens :: (Outputable statics, Outputable instr, Instruction instr)
   => DynFlags
   -> NcgImpl statics instr jumpDest
-  -> BufHandle
   -> UniqSupply
   -> [RawCmmDecl]
-  -> [[CLabel]]
-  -> [ ([NatCmmDecl statics instr],
-   Maybe [Color.RegAllocStats statics instr],
-   Maybe [Linear.RegAllocStats]) ]
+  -> NativeGenState statics instr
   -> Int
-  -> IO ( [[CLabel]],
-  [([NatCmmDecl statics instr],
-   Maybe [Color.RegAllocStats statics instr],
-   Maybe [Linear.RegAllocStats])],
-  UniqSupply )
+  -> IO (NativeGenAcc statics instr, UniqSupply)
 
-cmmNativeGens _ _ _ us [] impAcc profAcc _
-= return (impAcc,profAcc,us)
+cmmNativeGens _ _ us [] (_, nga) _
+= return (nga, us)
 
-cmmNativeGens dflags ncgImpl h us (cmm : cmms) impAcc profAcc count
+cmmNativeGens dflags ncgImpl us (cmm : cmms) (h, (impAcc, profAcc)) count
  = do
 (us', native, imports, colorStats, linearStats)
 <- {-# SCC "cmmNativeGen" 

[commit: nofib] master: Fix mandel in slow mode (890caa4)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/nofib

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/890caa4077655494f83fa3b6670f6d99d8c58744

>---

commit 890caa4077655494f83fa3b6670f6d99d8c58744
Author: Ian Lynagh 
Date:   Wed Dec 12 01:43:03 2012 +

Fix mandel in slow mode

>---

 spectral/mandel/Main.lhs  |3 ++-
 spectral/mandel/mandel.slowstdin  |2 +-
 spectral/mandel/mandel.slowstdout |  Bin 67602 -> 67602 bytes
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/spectral/mandel/Main.lhs b/spectral/mandel/Main.lhs
index b0e5496..9c3e7da 100644
--- a/spectral/mandel/Main.lhs
+++ b/spectral/mandel/Main.lhs
@@ -5,7 +5,8 @@ import Mandel
 import PortablePixmap
 import System.IO
 
-main =  getContents >>= \ userInput  ->
+main =  hSetBinaryMode stdout True >>
+getContents >>= \ userInput  ->
 readNum "Enter min x  = " (lines userInput) $   \ minx input ->
 readNum "Enter min y  = " input $   \ miny input ->
 readNum "Enter max x  = " input $   \ maxx input ->
diff --git a/spectral/mandel/mandel.slowstdin b/spectral/mandel/mandel.slowstdin
index a885358..dd2508d 100644
--- a/spectral/mandel/mandel.slowstdin
+++ b/spectral/mandel/mandel.slowstdin
@@ -4,4 +4,4 @@
 2.0
 150
 150
-256
+255
diff --git a/spectral/mandel/mandel.slowstdout 
b/spectral/mandel/mandel.slowstdout
index df5bb42..2d8d6d7 100644
Binary files a/spectral/mandel/mandel.slowstdout and 
b/spectral/mandel/mandel.slowstdout differ



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: nofib] master: Detabbing (9f9d5df)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/nofib

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/9f9d5dfc143803364f8a7853ec77d6677abc1b21

>---

commit 9f9d5dfc143803364f8a7853ec77d6677abc1b21
Author: Ian Lynagh 
Date:   Wed Dec 12 01:40:45 2012 +

Detabbing

>---

 spectral/mandel/Main.lhs |   26 +-
 1 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/spectral/mandel/Main.lhs b/spectral/mandel/Main.lhs
index 5783a81..b0e5496 100644
--- a/spectral/mandel/Main.lhs
+++ b/spectral/mandel/Main.lhs
@@ -5,25 +5,25 @@ import Mandel
 import PortablePixmap
 import System.IO
 
-main = getContents >>= \ userInput 
 ->
-   readNum "Enter min x  = " (lines userInput) $   \ minx input
 ->
-   readNum "Enter min y  = " input $   \ miny input
 ->
-   readNum "Enter max x  = " input $   \ maxx input
 ->
-   readNum "Enter max y  = " input $   \ maxy input
 ->
-   readNum "Screen width = " input $   \ screenX input 
 ->
-   readNum "Screen height= " input $   \ screenY input 
 ->
-   readNum "Screen depth = " input $   \ limit _   
 ->
-   putStr (show (mandelset minx miny maxx maxy screenX screenY limit))
+main =  getContents >>= \ userInput  ->
+readNum "Enter min x  = " (lines userInput) $   \ minx input ->
+readNum "Enter min y  = " input $   \ miny input ->
+readNum "Enter max x  = " input $   \ maxx input ->
+readNum "Enter max y  = " input $   \ maxy input ->
+readNum "Screen width = " input $   \ screenX input  ->
+readNum "Screen height= " input $   \ screenY input  ->
+readNum "Screen depth = " input $   \ limit _->
+putStr (show (mandelset minx miny maxx maxy screenX screenY limit))
 
 readNum::(Num a, Read a) => String -> [String] -> (a->[String]->IO ()) -> IO ()
 readNum prompt inputLines succ
= hPutStr stderr prompt >>
  case inputLines of
(x:xs) -> case (reads x) of
-  [(y,"")] -> succ y xs
-  _-> hPutStr stderr "Error - retype the number\n" >>
-  readNum prompt xs succ
-   _   -> hPutStr stderr "Early EOF"
+   [(y,"")] -> succ y xs
+   _-> hPutStr stderr "Error - retype the number\n" >>
+   readNum prompt xs succ
+   _-> hPutStr stderr "Early EOF"
 
 {-
 Enter min x  = -1.5



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: nofib] master: Remove -fglasgow-exts when building nofib-analyse (6fc6e54)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/nofib

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/6fc6e54a6f40aff06c4a9ea5e872f7b88b6e38e6

>---

commit 6fc6e54a6f40aff06c4a9ea5e872f7b88b6e38e6
Author: Ian Lynagh 
Date:   Tue Dec 11 23:52:11 2012 +

Remove -fglasgow-exts when building nofib-analyse

>---

 nofib-analyse/Makefile |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/nofib-analyse/Makefile b/nofib-analyse/Makefile
index c9765aa..ce86d24 100644
--- a/nofib-analyse/Makefile
+++ b/nofib-analyse/Makefile
@@ -4,7 +4,7 @@ include $(TOP)/mk/boilerplate.mk
 PROG = nofib-analyse
 
 $(PROG):
-   $(GHC) -O -cpp -fglasgow-exts --make Main -o $(PROG)
+   $(GHC) -O -cpp --make Main -o $(PROG)
 
 all :: $(PROG)
 



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: nofib] master: Add slow output for fft2 on x86_64/Linux (57944ff)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/nofib

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/57944ffef0b8e08baa0f58e3a9c86749973e5b05

>---

commit 57944ffef0b8e08baa0f58e3a9c86749973e5b05
Author: Ian Lynagh 
Date:   Wed Dec 12 00:39:37 2012 +

Add slow output for fft2 on x86_64/Linux

I haven't checked if the output is right or not, but it looks roughly
consistent with the existing variety of values.

>---

 spectral/fft2/fft2.slowstdout-x86_64 |3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/spectral/fft2/fft2.slowstdout-x86_64 
b/spectral/fft2/fft2.slowstdout-x86_64
new file mode 100644
index 000..b9aa777
--- /dev/null
+++ b/spectral/fft2/fft2.slowstdout-x86_64
@@ -0,0 +1,3 @@
+result1 = 21167.208319565725
+result2 = 2.5474713264389584e-11
+result3 = 2.2515139335155254e-6



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: nofib] master: Use a larger stack for spectral/hartel/event in slow mode (442a39f)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/nofib

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/442a39f777e35e3a6d42c80b652e0e5a0f9b09b8

>---

commit 442a39f777e35e3a6d42c80b652e0e5a0f9b09b8
Author: Ian Lynagh 
Date:   Wed Dec 12 00:41:49 2012 +

Use a larger stack for spectral/hartel/event in slow mode

>---

 spectral/hartel/event/Makefile |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/spectral/hartel/event/Makefile b/spectral/hartel/event/Makefile
index 74f1b75..649b900 100644
--- a/spectral/hartel/event/Makefile
+++ b/spectral/hartel/event/Makefile
@@ -5,7 +5,7 @@ SRC_HC_OPTS += -cpp -fglasgow-exts
 
 FAST_OPTS = 40
 NORM_OPTS = 40
-SLOW_OPTS = 150
+SLOW_OPTS = 150 +RTS -K20M -RTS
 
 include $(TOP)/mk/target.mk
 



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


[commit: nofib] master: Fix slow output for the power benchmark (8ccd4d1)

2012-12-11 Thread Ian Lynagh
Repository : ssh://darcs.haskell.org//srv/darcs/nofib

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/8ccd4d14d1dc6de670f33c3bb6624495ba320d17

>---

commit 8ccd4d14d1dc6de670f33c3bb6624495ba320d17
Author: Ian Lynagh 
Date:   Wed Dec 12 00:26:49 2012 +

Fix slow output for the power benchmark

>---

 spectral/power/power.slowstdout |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/spectral/power/power.slowstdout b/spectral/power/power.slowstdout
index 048a7a9..b7afe03 100644
--- a/spectral/power/power.slowstdout
+++ b/spectral/power/power.slowstdout
@@ -1,4 +1,4 @@
-[0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1]
-[0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1,0%1]
+[0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 
1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 
1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 
1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1]
+[0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 
1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 
1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 
1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1,0 % 1]
 
[1,1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9694845,35357670,129644790,477638700,1767263190,6564120420,24466267020,91482563640,343059613650,1289904147324,4861946401452,18367353072152,69533550916004,263747951750360,1002242216651368,3814986502092304,14544636039226909,55534064877048198,212336130412243110,812944042149730764,3116285494907301262,11959798385860453492,45950804324621742364,176733862787006701400,680425371729975800390,2622127042276492108820,10113918591637898134020,39044429911904443959240,150853479205085351660700,583300119592996693088040,2257117854077248073253720,8740328711533173390046320,33868773757191046886429490,131327898242169365477991900,509552245179617138054608572,1978261657756160653623774456,7684785670514316385230816156]
 
[0,1,1,2,5,14,42,132,429,1430,4862,16796,58786,208012,742900,2674440,9694845,35357670,129644790,477638700,1767263190,6564120420,24466267020,91482563640,343059613650,1289904147324,4861946401452,18367353072152,69533550916004,263747951750360,1002242216651368,3814986502092304,14544636039226909,55534064877048198,212336130412243110,812944042149730764,3116285494907301262,11959798385860453492,45950804324621742364,176733862787006701400,680425371729975800390,2622127042276492108820,10113918591637898134020,39044429911904443959240,150853479205085351660700,583300119592996693088040,2257117854077248073253720,8740328711533173390046320,33868773757191046886429490,131327898242169365477991900,509552245179617138054608572,1978261657756160653623774456]



___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc


tn23 (x86 OSX HEAD), build 780, Success

2012-12-11 Thread Builder
tn23 (x86 OSX HEAD), build 780

Build succeeded
Details: http://darcs.haskell.org/ghcBuilder/builders/tn23/780.html

git clone| Success
create mk/build.mk   | Success
get subrepos | Success
repo versions| Success
touching clean-check files   | Success
setting version date | Success
booting  | Success
configuring  | Success
creating check-remove-before | Success
compiling| Success
creating check-remove-after  | Success
compiling testremove | Success
simulating clean | Success
checking clean   | Success
making bindist   | Success
testing bindist  | Success
testing  | Success
testsuite summary| Success

Build succeeded
Details: http://darcs.haskell.org/ghcBuilder/builders/tn23/780.html

File not deleted:"compiler/ghc.cabal.old"
File not deleted:"includes/dist-derivedconstants"
File not deleted:"includes/dist-derivedconstants/header"
File not deleted:"includes/dist-derivedconstants/header/DerivedConstants.h"
File not deleted:
"includes/dist-derivedconstants/header/GHCConstantsHaskellExports.hs"
File not deleted:
"includes/dist-derivedconstants/header/GHCConstantsHaskellType.hs"
File not deleted:
"includes/dist-derivedconstants/header/GHCConstantsHaskellWrappers.hs"
File not deleted:"includes/dist-derivedconstants/header/platformConstants"
File not deleted:"includes/dist-derivedconstants/header/tmp.c"
File not deleted:"includes/dist-derivedconstants/header/tmp.o"
File not deleted:"inplace"
File not deleted:"libraries/base/include/EventConfig.h"
File not deleted:"mk/config.mk.old"
File not deleted:"mk/project.mk.old"
File not deleted:"rts/libs.depend"
File not deleted:"rts/package.conf.inplace"
File not deleted:"rts/package.conf.inplace.raw"

OVERALL SUMMARY for test run started at Wed Dec 12 03:27:44 CET 2012
3510 total tests, which gave rise to
   13930 test cases, of which
   0 caused framework failures
   10754 were skipped

3070 expected passes
  28 had missing libraries
  34 expected failures
  23 unexpected passes
  21 unexpected failures

Unexpected passes:
   codeGen/should_runT7319 (prof)
   profiling/should_compile  2410 (normal)
   profiling/should_compile  prof001 (normal)
   profiling/should_compile  prof002 (normal)
   profiling/should_run  5314 (prof)
   profiling/should_run  T2552 (prof)
   profiling/should_run  T3001 (prof_hb)
   profiling/should_run  T3001-2 (prof_hb)
   profiling/should_run  T5363 (prof)
   profiling/should_run  T5559 (prof)
   profiling/should_run  T680 (prof)
   profiling/should_run  T949 (prof)
   profiling/should_run  callstack001 (prof)
   profiling/should_run  callstack002 (prof)
   profiling/should_run  heapprof001 (prof)
   profiling/should_run  prof-doc-fib (prof)
   profiling/should_run  prof-doc-last (prof)
   profiling/should_run  profinline001 (prof)
   profiling/should_run  scc001 (prof)
   profiling/should_run  scc002 (prof)
   profiling/should_run  scc003 (prof)
   stranal/should_compilenewtype (optasm)
   thTH_spliceE5_prof (normal)

Unexpected failures:
   ../../libraries/base/tests   qsem001 [bad stdout] (normal)
   ../../libraries/base/tests   qsemn001 [exit code non-0] (normal)
   ../../libraries/directory/tests  T4113 [bad stdout] (normal)
   codeGen/should_run   cgrun068 [exit code non-0] (normal)
   concurrent/should_runconc070 [bad stdout or stderr] (ghci)
   driver   dynHelloWorld [bad exit code] (dyn)
   dynlibs  T3807 [bad exit code] (normal)
   dynlibs  T5373 [bad stdout] (normal)
   ghci/linking ghcilink003 [bad exit code] (normal)
   ghci/linking ghcilink006 [bad exit code] (normal)
   ghci/scripts T5979 [bad stderr] (ghci)
   ghci/should_run  3171 [bad stdout] (normal)
   perf/compilerT1969 [stat not good enough] (normal)
   perf/compilerT3294 [stat not good enough] (normal)
   perf/compilerT783 [stat not good enough] (normal)
   perf/compilerparsing001 [stat not good enough] (normal)
   perf/haddock haddock.Cabal [stat not good enough] 
(normal)
   perf/haddock haddock.base [stat not good enough] (normal)
   perf/haddock haddock.compiler [stat too good] (normal)
   typecheck/should_failT5300 [stderr mismatch] (normal)
   typecheck/should_failT5691 [stderr mismatch] (normal)

___
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/