Re: Windows breakage -- again

2014-07-17 Thread Niklas Larsson
Yes, ultimately the problem is that the mingw-gcc that is in the tarball
git has a too low target. But that is a rather larger fix than setting the
arch targetted in configure.


2014-07-17 22:50 GMT+02:00 Páli Gábor János :

> 2014-07-17 22:05 GMT+02:00 Niklas Larsson :
> > The bug is that the mingw32 build is generating
> > code for i386, which lacks these assembler primitives.
>
> I think this might be a feature instead.  As I wrote earlier, on
> FreeBSD/i386, arch is set to i486 in GCC's configure script [1].
> Hence, whatever version I install from the Ports Collection, it will
> target i486 by default.
>
> [1] https://github.com/mirrors/gcc/blob/master/gcc/config.gcc#L2899
>
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: Windows breakage -- again

2014-07-17 Thread Páli Gábor János
2014-07-17 22:05 GMT+02:00 Johan Tibell :
> Can someone see if adding
>
>   Cc-options: -march=i686
>
> To ghc-prim.cabal resolves the issue?

Yes, I can confirm that it works.  However, it shall be prefixed with
a conditional such as (os(windows) && arch(i386)) as x86_64 does not
support -march=i686.
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: Windows breakage -- again

2014-07-17 Thread Páli Gábor János
2014-07-17 22:05 GMT+02:00 Niklas Larsson :
> The bug is that the mingw32 build is generating
> code for i386, which lacks these assembler primitives.

I think this might be a feature instead.  As I wrote earlier, on
FreeBSD/i386, arch is set to i486 in GCC's configure script [1].
Hence, whatever version I install from the Ports Collection, it will
target i486 by default.

[1] https://github.com/mirrors/gcc/blob/master/gcc/config.gcc#L2899
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: Windows breakage -- again

2014-07-17 Thread Niklas Larsson
Now I have an extremely simple patch that I have confirmed is working.

As it is in the autoconfig stuff, one needs to run:
autoreconf
make distclean
./boot
and so on

As apparently everything has been built with i386 before, I'm curious about
if there's a performance increase when going i686. I'll have to measure
that, but not tonight.

Niklas


2014-07-17 22:05 GMT+02:00 Johan Tibell :

> Can someone see if adding
>
>   Cc-options: -march=i686
>
> To ghc-prim.cabal resolves the issue?
> On Jul 17, 2014 9:06 PM, "Simon Marlow"  wrote:
>
>> gcc has -march=native which uses the current CPU's architecture, but I
>> think it would be a really bad idea to turn that on by default, because it
>> would mean that we have to be really careful which machine we build the
>> distributions on.
>>
>> On my Linux box, gcc -v says it was configured with --with-arch-32=i686,
>> which means that -march=i686 is the default for 32-bit code.  We shouldn't
>> go any later than that IMO.
>>
>> Anyway, this is all beside the point, if we aren't able to run the code
>> generated by gcc (in whatever mode) then there's a bug somewhere.
>>
>> Cheers,
>> Simon
>>
>> On 17/07/2014 07:39, Johan Tibell wrote:
>>
>>> Alright, then which Make file do we need to fix to make sure GCC is
>>> called correctly? Also, I remember reading that some time during the
>>> 4.x GCC series GCC switched to auto-detecting the arch to be that of
>>> the machine being used. Could someone try to just switch GCC to a
>>> newer version and see if it automatically stops trying to use i386,
>>> leading to Simon's problem?
>>>
>>> On Thu, Jul 17, 2014 at 8:37 AM, Niklas Larsson 
>>> wrote:
>>>
 It certainly shouldn't be built with i386, because that is generating
 code
 for a processor that lacks all these fancy atomic instructions. The
 first of
 them appears on the 486.

 i686 should be safe, it goes all the way back to Pentium Pro.


 2014-07-17 8:33 GMT+02:00 Johan Tibell :

  A perhaps silly question, *should* ghc-prim be built with i386 or i686?
>
> On Thu, Jul 17, 2014 at 8:33 AM, Niklas Larsson 
> wrote:
>
>> I just found exactly the same thing! Well, I used i686 instead.
>>
>> Sounds like it's worthwhile to see if this is limited to ghc-prim or
>> if
>> there's more stuff that's built with i386.
>>
>>
>> 2014-07-17 8:21 GMT+02:00 Páli Gábor János :
>>
>>  2014-07-17 0:51 GMT+02:00 Páli Gábor János :
>>>
 2014-07-17 0:47 GMT+02:00 Niklas Larsson :

> I hope they can just be done away with at the source, that is to
> make
> gcc
> generate the assembly primitives. GHC should already be built with
> i686, but
> does that reach ghc-prim?
>

 This depends on GCC -- if no -march=XXX is explicitly set, I guess
 it
 will take its default, which may vary platform by platform.

>>>
>>> All right, I have finally got a Windows (x64) machine and installed
>>> the msys2 environment by the GHC wiki [1].  This has GCC 4.5.2 (as
>>> Niklas wrote earlier), where the default -march is i386.  You should
>>> see this line when trying to compile Johan's test program with the -v
>>> flag set:
>>>
>>> COLLECT_GCC_OPTIONS= ... '-v' '-mtune=i386' '-march=i386'
>>>
>>> With the -march=i586 flag explicitly set in the command line, no
>>> __sync_fetch_and_add_n() calls are generated.
>>>
>>> [1]
>>>
>>> https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/
>>> Windows/MSYS2
>>>
>>
>>
>>




0001-Set-i686-as-the-minimum-architecture-on-32-bit-mingw.patch
Description: Binary data
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: Windows breakage -- again

2014-07-17 Thread Johan Tibell
Can someone see if adding

  Cc-options: -march=i686

To ghc-prim.cabal resolves the issue?
On Jul 17, 2014 9:06 PM, "Simon Marlow"  wrote:

> gcc has -march=native which uses the current CPU's architecture, but I
> think it would be a really bad idea to turn that on by default, because it
> would mean that we have to be really careful which machine we build the
> distributions on.
>
> On my Linux box, gcc -v says it was configured with --with-arch-32=i686,
> which means that -march=i686 is the default for 32-bit code.  We shouldn't
> go any later than that IMO.
>
> Anyway, this is all beside the point, if we aren't able to run the code
> generated by gcc (in whatever mode) then there's a bug somewhere.
>
> Cheers,
> Simon
>
> On 17/07/2014 07:39, Johan Tibell wrote:
>
>> Alright, then which Make file do we need to fix to make sure GCC is
>> called correctly? Also, I remember reading that some time during the
>> 4.x GCC series GCC switched to auto-detecting the arch to be that of
>> the machine being used. Could someone try to just switch GCC to a
>> newer version and see if it automatically stops trying to use i386,
>> leading to Simon's problem?
>>
>> On Thu, Jul 17, 2014 at 8:37 AM, Niklas Larsson 
>> wrote:
>>
>>> It certainly shouldn't be built with i386, because that is generating
>>> code
>>> for a processor that lacks all these fancy atomic instructions. The
>>> first of
>>> them appears on the 486.
>>>
>>> i686 should be safe, it goes all the way back to Pentium Pro.
>>>
>>>
>>> 2014-07-17 8:33 GMT+02:00 Johan Tibell :
>>>
>>>  A perhaps silly question, *should* ghc-prim be built with i386 or i686?

 On Thu, Jul 17, 2014 at 8:33 AM, Niklas Larsson 
 wrote:

> I just found exactly the same thing! Well, I used i686 instead.
>
> Sounds like it's worthwhile to see if this is limited to ghc-prim or if
> there's more stuff that's built with i386.
>
>
> 2014-07-17 8:21 GMT+02:00 Páli Gábor János :
>
>  2014-07-17 0:51 GMT+02:00 Páli Gábor János :
>>
>>> 2014-07-17 0:47 GMT+02:00 Niklas Larsson :
>>>
 I hope they can just be done away with at the source, that is to
 make
 gcc
 generate the assembly primitives. GHC should already be built with
 i686, but
 does that reach ghc-prim?

>>>
>>> This depends on GCC -- if no -march=XXX is explicitly set, I guess it
>>> will take its default, which may vary platform by platform.
>>>
>>
>> All right, I have finally got a Windows (x64) machine and installed
>> the msys2 environment by the GHC wiki [1].  This has GCC 4.5.2 (as
>> Niklas wrote earlier), where the default -march is i386.  You should
>> see this line when trying to compile Johan's test program with the -v
>> flag set:
>>
>> COLLECT_GCC_OPTIONS= ... '-v' '-mtune=i386' '-march=i386'
>>
>> With the -march=i586 flag explicitly set in the command line, no
>> __sync_fetch_and_add_n() calls are generated.
>>
>> [1]
>>
>> https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/
>> Windows/MSYS2
>>
>
>
>
>>>
>>>
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: Windows breakage -- again

2014-07-17 Thread Niklas Larsson
| On my Linux box, gcc -v says it was configured with --with-arch-32=i686,
which means that -march=i686 is the default for 32-bit code.  We shouldn't
go any later than that IMO.
|
| Anyway, this is all beside the point, if we aren't able to run the code
generated by gcc (in whatever mode) then there's a bug somewhere.

I've looked at it more now. The bug is that the mingw32 build is generating
code for i386, which lacks these assembler primitives. The failure to link
is just because gcc is sticking in these undefined symbols on the
off-chance that you want to provide them yourself, they aren't included in
gcc. Stick a -march=i686 in there and it works.

I don't think it's reasonable to cater for processors that doesn't have
support for CAS. So I'm testing a patch that just adds a -march=i686 flag
for 32-bit mingw in aclocal.m4.

Niklas

2014-07-17 20:06 GMT+02:00 Simon Marlow :

> gcc has -march=native which uses the current CPU's architecture, but I
> think it would be a really bad idea to turn that on by default, because it
> would mean that we have to be really careful which machine we build the
> distributions on.
>
> On my Linux box, gcc -v says it was configured with --with-arch-32=i686,
> which means that -march=i686 is the default for 32-bit code.  We shouldn't
> go any later than that IMO.
>
> Anyway, this is all beside the point, if we aren't able to run the code
> generated by gcc (in whatever mode) then there's a bug somewhere.
>
> Cheers,
> Simon
>
>
> On 17/07/2014 07:39, Johan Tibell wrote:
>
>> Alright, then which Make file do we need to fix to make sure GCC is
>> called correctly? Also, I remember reading that some time during the
>> 4.x GCC series GCC switched to auto-detecting the arch to be that of
>> the machine being used. Could someone try to just switch GCC to a
>> newer version and see if it automatically stops trying to use i386,
>> leading to Simon's problem?
>>
>> On Thu, Jul 17, 2014 at 8:37 AM, Niklas Larsson 
>> wrote:
>>
>>> It certainly shouldn't be built with i386, because that is generating
>>> code
>>> for a processor that lacks all these fancy atomic instructions. The
>>> first of
>>> them appears on the 486.
>>>
>>> i686 should be safe, it goes all the way back to Pentium Pro.
>>>
>>>
>>> 2014-07-17 8:33 GMT+02:00 Johan Tibell :
>>>
>>>  A perhaps silly question, *should* ghc-prim be built with i386 or i686?

 On Thu, Jul 17, 2014 at 8:33 AM, Niklas Larsson 
 wrote:

> I just found exactly the same thing! Well, I used i686 instead.
>
> Sounds like it's worthwhile to see if this is limited to ghc-prim or if
> there's more stuff that's built with i386.
>
>
> 2014-07-17 8:21 GMT+02:00 Páli Gábor János :
>
>  2014-07-17 0:51 GMT+02:00 Páli Gábor János :
>>
>>> 2014-07-17 0:47 GMT+02:00 Niklas Larsson :
>>>
 I hope they can just be done away with at the source, that is to
 make
 gcc
 generate the assembly primitives. GHC should already be built with
 i686, but
 does that reach ghc-prim?

>>>
>>> This depends on GCC -- if no -march=XXX is explicitly set, I guess it
>>> will take its default, which may vary platform by platform.
>>>
>>
>> All right, I have finally got a Windows (x64) machine and installed
>> the msys2 environment by the GHC wiki [1].  This has GCC 4.5.2 (as
>> Niklas wrote earlier), where the default -march is i386.  You should
>> see this line when trying to compile Johan's test program with the -v
>> flag set:
>>
>> COLLECT_GCC_OPTIONS= ... '-v' '-mtune=i386' '-march=i386'
>>
>> With the -march=i586 flag explicitly set in the command line, no
>> __sync_fetch_and_add_n() calls are generated.
>>
>> [1]
>>
>> https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/
>> Windows/MSYS2
>>
>
>
>
>>>
>>>
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: GHC contribution guidelines and infrastructure talk on 6th September at HIW?

2014-07-17 Thread Carter Schonwald
wearing my "i'm on the HIW PC" hat, i'm going to speculatively say, "Yes!",
though i'm ccing Jost into this dialogue :)




On Thu, Jul 17, 2014 at 2:18 PM, Rob Stewart  wrote:

> Hi,
>
> On Saturday 6th September is the Haskell Implementers Workshop. There
> has been plenty of discussion over the last 12 months about making
> contributions to GHC less formidable. Is this story going to be told
> at HIW? A talk about revised contribution guidelines and helpful tool
> support might engage those sat on, or peering over, the fence.
>
> This might  include:
>
> * Phabricator code review demonstration.
> * Continuous integration infrastructure.
> * Trac demonstration, e.g. how to contribute to design discussions.
> * Wiki navigation, and important new pages born in recent months.
> * GHC coding guidelines, e.g. using notes and haddock documentation.
> * Git policies, e.g. use of submodules.
> * What GHC needs.. Windows testers?
> * Old contribution guidelines that no longer apply.
>
> Is HIW on 6th September a good place to give a "GHC contributions and
> infrastructure" talk?
>
> --
> Rob
> ___
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs
>
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


GHC contribution guidelines and infrastructure talk on 6th September at HIW?

2014-07-17 Thread Rob Stewart
Hi,

On Saturday 6th September is the Haskell Implementers Workshop. There
has been plenty of discussion over the last 12 months about making
contributions to GHC less formidable. Is this story going to be told
at HIW? A talk about revised contribution guidelines and helpful tool
support might engage those sat on, or peering over, the fence.

This might  include:

* Phabricator code review demonstration.
* Continuous integration infrastructure.
* Trac demonstration, e.g. how to contribute to design discussions.
* Wiki navigation, and important new pages born in recent months.
* GHC coding guidelines, e.g. using notes and haddock documentation.
* Git policies, e.g. use of submodules.
* What GHC needs.. Windows testers?
* Old contribution guidelines that no longer apply.

Is HIW on 6th September a good place to give a "GHC contributions and
infrastructure" talk?

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


Re: Windows breakage -- again

2014-07-17 Thread Simon Marlow
gcc has -march=native which uses the current CPU's architecture, but I 
think it would be a really bad idea to turn that on by default, because 
it would mean that we have to be really careful which machine we build 
the distributions on.


On my Linux box, gcc -v says it was configured with --with-arch-32=i686, 
which means that -march=i686 is the default for 32-bit code.  We 
shouldn't go any later than that IMO.


Anyway, this is all beside the point, if we aren't able to run the code 
generated by gcc (in whatever mode) then there's a bug somewhere.


Cheers,
Simon

On 17/07/2014 07:39, Johan Tibell wrote:

Alright, then which Make file do we need to fix to make sure GCC is
called correctly? Also, I remember reading that some time during the
4.x GCC series GCC switched to auto-detecting the arch to be that of
the machine being used. Could someone try to just switch GCC to a
newer version and see if it automatically stops trying to use i386,
leading to Simon's problem?

On Thu, Jul 17, 2014 at 8:37 AM, Niklas Larsson  wrote:

It certainly shouldn't be built with i386, because that is generating code
for a processor that lacks all these fancy atomic instructions. The first of
them appears on the 486.

i686 should be safe, it goes all the way back to Pentium Pro.


2014-07-17 8:33 GMT+02:00 Johan Tibell :


A perhaps silly question, *should* ghc-prim be built with i386 or i686?

On Thu, Jul 17, 2014 at 8:33 AM, Niklas Larsson 
wrote:

I just found exactly the same thing! Well, I used i686 instead.

Sounds like it's worthwhile to see if this is limited to ghc-prim or if
there's more stuff that's built with i386.


2014-07-17 8:21 GMT+02:00 Páli Gábor János :


2014-07-17 0:51 GMT+02:00 Páli Gábor János :

2014-07-17 0:47 GMT+02:00 Niklas Larsson :

I hope they can just be done away with at the source, that is to
make
gcc
generate the assembly primitives. GHC should already be built with
i686, but
does that reach ghc-prim?


This depends on GCC -- if no -march=XXX is explicitly set, I guess it
will take its default, which may vary platform by platform.


All right, I have finally got a Windows (x64) machine and installed
the msys2 environment by the GHC wiki [1].  This has GCC 4.5.2 (as
Niklas wrote earlier), where the default -march is i386.  You should
see this line when trying to compile Johan's test program with the -v
flag set:

COLLECT_GCC_OPTIONS= ... '-v' '-mtune=i386' '-march=i386'

With the -march=i586 flag explicitly set in the command line, no
__sync_fetch_and_add_n() calls are generated.

[1]

https://ghc.haskell.org/trac/ghc/wiki/Building/Preparation/Windows/MSYS2







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


Re: The build is broken? (Haddock parse error)

2014-07-17 Thread Richard Eisenberg
Oops. I was relying on Travis's validation, which skips haddocking.

This is most likely why Phab's build failed.

Thanks for fixing it!
Richard

On Jul 17, 2014, at 4:44 AM, Simon Hengel  wrote:

> On Thu, Jul 17, 2014 at 08:21:43AM +, Simon Peyton Jones wrote:
>> 
>> | > parse error on input ‘-- *kind* and role of its argument.
>> | Luckily,
>> | > laziness should’
>> | >
>> | > [1] http://haskell.inf.elte.hu/builders/freebsd-amd64-
>> | head/322/10.html
>> | > ___
>> | > ghc-devs mailing list
>> | > ghc-devs@haskell.org
>> | > http://www.haskell.org/mailman/listinfo/ghc-devs
>> | >
>> | 
>> | ‘-- *’ is Haddock syntax for headers and because GHC doesn't expect a
>> | Haddock comment there, it chucks a parse error. I think just adding a
>> | leading space or turning it into {- -} style comment would work.
>> | 
>> | In all honesty, GHC should just warn and treat as regular comments at
>> | these cases rather than failing.
>> 
>> I agree.  I've been bitten by this several times.  But don't you mean 
>> "Haddock should just warn..."?
> 
> The corresponding code is in GHC (only used with Opt_Haddock).  So we
> need to change this in GHC.
> 
> Cheers,
> Simon
> ___
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://www.haskell.org/mailman/listinfo/ghc-devs
> 

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


RE: Beta Performance dashboard

2014-07-17 Thread Simon Peyton Jones
This is totally brilliant: thank you Joachim!

Simon

| -Original Message-
| From: ghc-devs [mailto:ghc-devs-boun...@haskell.org] On Behalf Of
| Joachim Breitner
| Sent: 16 July 2014 09:02
| To: ghc-devs@haskell.org
| Subject: Beta Performance dashboard
| 
| Hi,
| 
| I guess it’s time to talk about this, especially as Richard just
| brought it up again...
| 
| I felt that we were seriously lacking in our grip on performance
| issues.
| We don’t even know whether 6.8.3 was better or worse than 6.8.3 or
| 7.6.4 in terms of nofib, not to speak of the effect of each single
| commit.
| 
| I want to change that, so I set up a benchmark monitoring dashboard.
| You can currently reach it at:
| 
|   http://ghcspeed-nomeata.rhcloud.com/
| 
| What does it do?
| 
| 
| It monitors the repository (master branch only) and builds each commit,
| complete with the test suite and nofib. The log is saved and analyzed,
| and some numbers are extracted:
|  * The build time
|  * The test suite summary numbers
|  * Runtime (if >1s), allocations and binary sizes of the nofib
|benchmarks
| 
| These are uploaded to the website above, which is powered by codespeed,
| a general performance dashboard, implemented in Python using Django.
| 
| Under _Changes_, it provides a report for each commit (changes wrt. to
| the previous version, and wrt. to 10 revisions earlier, the so-called
| “trend”). A summary of these reports is visible on the front-page.
| 
| The _Timeline_ is a graph for each individual performance number. If
| there are bumps, you can hopefully find them there! You can also
| compare to 7.8.3, which is available as a “baseline”.
| 
| _Comparison_ will be more useful if we have more tagged revision, or if
| were benchmarking various options (e.g. -fllvm): Here you can do bar-
| chart comparisons.
| 
| Why codespeed?
| ~~
| 
| For a long time I searched for a suitable software product, and one
| criterion is that it should be open source, rather simple to set up and
| mostly decoupled from other tools, i.e. something that I throw numbers
| at and which then displays them nicely. While I don’t think codespeed
| is the best performance dashboard out there (I find
| http://goperfd.appspot.com/perf a bit better; I wonder how well
| codespeed scales to even larger numbers of benchmarks and I wish it
| were more git-aware), it was the easiest to get started with. And
| thanks to the loose coupling of (1) running the tests to acquire a log,
| (2) parsing the log to get numbers and (3) putting them on a server, we
| can hopefully replace it when we come along something better. I was
| hoping for the Phabricator guys to have something in their tool suite,
| but doesn’t look like it.
| 
| How does it work (currently)?
| ~
| 
| My office PC is underused (I work on my laptop), so its currently
| dedicated to it. I have a simple shell script that monitors the repo
| for new versions. It builds the newest revision and works itself back
| to the commit where everything was turned into submodules:
| https://github.com/nomeata/codespeed/blob/ghc/tools/ghc/watch.sh
| 
| It calls a script that does the actual building:
| https://github.com/nomeata/codespeed/blob/ghc/tools/ghc/run-speed.sh
| This produces a log file which should contain all the required numbers
| somewhere.
| 
| A second script extracts these numbers (with help of nofib-analyze) and
| converts them into codespeed compatible JSON files:
| https://github.com/nomeata/codespeed/blob/ghc/tools/ghc/log2json.pl
| 
| Finally, a simple invocation to curl uploads them to codespeed:
| https://github.com/nomeata/codespeed/blob/ghc/tools/ghc/upload.sh
| 
| So if you want additional benchmarks to be tracked, make sure they are
| present in the logs and adjust log2json.pl. codespeed will
| automatically pick up new benchmarks in these logs. Reimplementations
| in Haskell are also welcome :-)
| 
| The testsuite is run with VERBOSE=4, so the performance numbers are
| also shown for failing test cases. So once a test case goes over the
| limit, you can grep through previous logs try to find the real culprit.
| I uploaded the logs (so far) to https://github.com/nomeata/ghc-speed-
| logs
| (but this is not automated yet, ping me if you need an update on this).
| 
| What next?
| ~~
| 
| Clearly, the current setup is only good enough to evaluate the system.
| Eventually, I might want to use my office PC again, and the free
| hosting on openshift is not very powerful.
| 
| So if we want to keep this setup and make it “official”, we need find a
| permanent solution.¹ This involves:
| 
|  * A dedicated machine to run the benchmarks. This probably shouldn’t
| be
|a VM, if we want to keep the noise in the runtime down.
|  * A machine to run the codespeed server. Can be a VM, or even run on
|any of the system that we have right now. Just needs a database
|(postgresql preferably) and a webserver support

Re: RFC: style cleanup & guidelines for GHC, and related bikeshedding

2014-07-17 Thread Alexander Berntsen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On 17/07/14 08:57, Johan Tibell wrote:
> * Wider screens let you have several Emacs buffers next to each 
> other. At 80 chars you can have about 2 buffers next to each other 
> on a 13" screen.
This is my main grief with 100 char lines (which is the Android
standard, by the way). I like to have 6 or 8 files open side by side
(including diffs and other meta-code).

> * The eye has trouble traveling back to the next line if lines get
>  too long (at least when reading prose). Research says around 60-70
>  characters is optimal, if I recall correctly.
66 as far as I remember, but that number is for prose and thus not
*very* relevant, as Manuel points out. But I do think it's a problem
in code too, regardless of the exact number. Being at 80+ is also
often an indication that you're in dire need of refactoring.

So while we're all chiming in, my preferences in order:

  78
  72
  80
  less than 72
  more than 80
- -- 
Alexander
alexan...@plaimi.net
https://secure.plaimi.net/~alexander
-BEGIN PGP SIGNATURE-
Version: GnuPG v2
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iF4EAREIAAYFAlPHkAIACgkQRtClrXBQc7VVpwD+K2Q8NYplnmJdNYTulHx4hQBP
GVeBJjYQifYrr6MoQq8BAJNP3IUyq+pg+VsGqJg4tCkrv6nmfM1teExzE2avz0/u
=76Tq
-END PGP SIGNATURE-
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: The build is broken? (Haddock parse error)

2014-07-17 Thread Simon Hengel
On Thu, Jul 17, 2014 at 08:21:43AM +, Simon Peyton Jones wrote:
> 
> | > parse error on input ‘-- *kind* and role of its argument.
> | Luckily,
> | > laziness should’
> | >
> | > [1] http://haskell.inf.elte.hu/builders/freebsd-amd64-
> | head/322/10.html
> | > ___
> | > ghc-devs mailing list
> | > ghc-devs@haskell.org
> | > http://www.haskell.org/mailman/listinfo/ghc-devs
> | >
> | 
> | ‘-- *’ is Haddock syntax for headers and because GHC doesn't expect a
> | Haddock comment there, it chucks a parse error. I think just adding a
> | leading space or turning it into {- -} style comment would work.
> | 
> | In all honesty, GHC should just warn and treat as regular comments at
> | these cases rather than failing.
> 
> I agree.  I've been bitten by this several times.  But don't you mean 
> "Haddock should just warn..."?

The corresponding code is in GHC (only used with Opt_Haddock).  So we
need to change this in GHC.

Cheers,
Simon
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


RE: Updating Haddock submodule

2014-07-17 Thread Simon Peyton Jones
| Maybe we need different two different presentations. One concise
| reference-like wiki page for Git-gnostic devs, and one for `./sync-
| all`-accustomed devs (or maybe even a rosetta-stone like translation
| between 'sync-all' invocations, and what the respective Git-only
| commands look like)

Maybe so.  But we *certainly* need the one for people who are not Git-gnostic.  
WE provide sync-all, and advise its use for most folk, precisely because it 
automates a number of tricky corners.  So our primary Git-un-gnostic 
documentation should be directed at that workflow.

By all means there can be more implementation detail behind it, for Git gurus.

I'm begging for it.  Begging!  Humbly!

Simon

| -Original Message-
| From: Herbert Valerio Riedel [mailto:hvrie...@gmail.com]
| Sent: 17 July 2014 09:20
| To: Simon Peyton Jones
| Cc: Mateusz Kowalczyk; ghc-devs@haskell.org
| Subject: Re: Updating Haddock submodule
| 
| On 2014-07-17 at 08:54:32 +0200, Simon Peyton Jones wrote:
| 
| [...]
| 
| > - it's at the bottom of a long page, most of which is irrelevant if
| > you use ./sync-all (I think??)
| 
| Fwiw, the page was written to be a `./sync-all`-agnostic on purpose (in
| fact, ./sync-all isn't mentioned only once for pre-submodule trees)
| 
| [...]
| 
| > I'm *not* complaining -- just trying to articulate explicitly what
| > would be helpful to me (or other ill-informed people) next time.
| 
| Maybe we need different two different presentations. One concise
| reference-like wiki page for Git-gnostic devs, and one for `./sync-
| all`-accustomed devs (or maybe even a rosetta-stone like translation
| between 'sync-all' invocations, and what the respective Git-only
| commands look like)
| 
| Fwiw, I have started experimenting with a `runghc`-based ./sync-all
| replacement[1] (which uses only the packages bundled with GHC), but I
| don't have time to work on it for the next couple of weeks.
| 
| 
| Cheers,
|   hvr
| 
|  [1]: Currently, it's more of a ghc.git advisor, checking the current
|   state of your Git repo, and telling you what commands you should
|   invoke next, but it's in its really earliest stages. If anyone
|   wants to pick it up, and work on it, lemme know.
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: RFC: style cleanup & guidelines for GHC, and related bikeshedding

2014-07-17 Thread Manuel M T Chakravarty
Johan Tibell :
> 
> On Thu, Jul 17, 2014 at 8:40 AM, Simon Peyton Jones
>  wrote:
>> | I used to be a 80 column guy, but moved away from that the last years.
>> | But you are right, there must be an upper limit and, if >80 is a
>> | problem for code reviews, then it's a reasonable choice.
>> 
>> As laptop screens have successively more horizontal pixels and fewer 
>> vertical pixels, longer lines use screen real estate better.  80 columns now 
>> seems a bit narrow to me.  100 would be better.
>> 
>> But I'm not going to die for this
> 
> Here we go!
> 
> * Wider screens let you have several Emacs buffers next to each
> other. At 80 chars you can have about 2 buffers next to each other on
> a 13" screen.

I think that was SimonM's premise for code reviews, that you want lines short 
enough to have two versions besides each other.

> * The average line length is about 30-35 characters in Python. If
> it's anything similar in Haskell shorter line length are more
> efficient, looking how much of the lines times columns space is filled
> with characters.

The problem is that indentation and long identifiers push you towards longer 
lines.

> * The eye has trouble traveling back to the next line if lines get
> too long (at least when reading prose). Research says around 60-70
> characters is optimal, if I recall correctly.

I think we read code differently to prose (and prose is not much indented), so 
I don't think these numbers transfer. 

Manuel

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


RE: The build is broken? (Haddock parse error)

2014-07-17 Thread Simon Peyton Jones

| > parse error on input ‘-- *kind* and role of its argument.
| Luckily,
| > laziness should’
| >
| > [1] http://haskell.inf.elte.hu/builders/freebsd-amd64-
| head/322/10.html
| > ___
| > ghc-devs mailing list
| > ghc-devs@haskell.org
| > http://www.haskell.org/mailman/listinfo/ghc-devs
| >
| 
| ‘-- *’ is Haddock syntax for headers and because GHC doesn't expect a
| Haddock comment there, it chucks a parse error. I think just adding a
| leading space or turning it into {- -} style comment would work.
| 
| In all honesty, GHC should just warn and treat as regular comments at
| these cases rather than failing.

I agree.  I've been bitten by this several times.  But don't you mean "Haddock 
should just warn..."?

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


Re: Updating Haddock submodule

2014-07-17 Thread Herbert Valerio Riedel
On 2014-07-17 at 08:54:32 +0200, Simon Peyton Jones wrote:

[...]

> - it's at the bottom of a long page, most of which is irrelevant if you use 
> ./sync-all (I think??)

Fwiw, the page was written to be a `./sync-all`-agnostic on purpose (in
fact, ./sync-all isn't mentioned only once for pre-submodule trees)

[...]

> I'm *not* complaining -- just trying to articulate explicitly what
> would be helpful to me (or other ill-informed people) next time.

Maybe we need different two different presentations. One concise
reference-like wiki page for Git-gnostic devs, and one for
`./sync-all`-accustomed devs (or maybe even a rosetta-stone like
translation between 'sync-all' invocations, and what the respective
Git-only commands look like)

Fwiw, I have started experimenting with a `runghc`-based ./sync-all
replacement[1] (which uses only the packages bundled with GHC), but I don't
have time to work on it for the next couple of weeks.


Cheers,
  hvr

 [1]: Currently, it's more of a ghc.git advisor, checking the current
  state of your Git repo, and telling you what commands you should
  invoke next, but it's in its really earliest stages. If anyone
  wants to pick it up, and work on it, lemme know.
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: The build is broken? (Haddock parse error)

2014-07-17 Thread Mateusz Kowalczyk
On 07/17/2014 09:05 AM, Páli Gábor János wrote:
> Hello there,
> 
> I have just found the builds are failing due to this (see [1] for the full 
> log):
> 
> "/usr/home/ghc-builder/work/builder/tempbuild/build/inplace/bin/haddock"
> --odir="compiler/stage2/doc/html/ghc" --no-tmp-comp-dir
> --dump-interface=compiler/stage2/doc/html/ghc/ghc.haddock --html
> --hoogle --title="ghc-7.9.20140717: The GHC API"
> --prologue="compiler/stage2/haddock-prologue.txt"
> --read-interface=../Cabal-1.20.0.1,../Cabal-1.20.0.1/src/%{MODULE/./-}.html\#%{NAME},libraries/Cabal/Cabal/dist-install/doc/html/Cabal/Cabal.haddock
> --read-interface=../array-0.5.0.0,../array-0.5.0.0/src/%{MODULE/./-}.html\#%{NAME},libraries/array/dist-install/doc/html/array/array.haddock
> --read-interface=../base-4.7.1.0,../base-4.7.1.0/src/%{MODULE/./-}.html\#%{NAME},libraries/base/dist-install/doc/html/base/base.haddock
> --read-interface=../bin-package-db-0.0.0.0,../bin-package-db-0.0.0.0/src/%{MODULE/./-}.html\#%{NAME},libraries/bin-package-db/dist-install/doc/html/bin-package-db/bin-package-db.haddock
> --read-interface=../bytestring-0.10.4.0,../bytestring-0.10.4.0/src/%{MODULE/./-}.html\#%{NAME},libraries/bytestring/dist-install/doc/html/bytestring/bytestring.haddock
> --read-interface=../containers-0.5.5.1,../containers-0.5.5.1/src/%{MODULE/./-}.html\#%{NAME},libraries/containers/dist-install/doc/html/containers/containers.haddock
> --read-interface=../directory-1.2.1.0,../directory-1.2.1.0/src/%{MODULE/./-}.html\#%{NAME},libraries/directory/dist-install/doc/html/directory/directory.haddock
> --read-interface=../filepath-1.3.0.2,../filepath-1.3.0.2/src/%{MODULE/./-}.html\#%{NAME},libraries/filepath/dist-install/doc/html/filepath/filepath.haddock
> --read-interface=../hoopl-3.10.0.1,../hoopl-3.10.0.1/src/%{MODULE/./-}.html\#%{NAME},libraries/hoopl/dist-install/doc/html/hoopl/hoopl.haddock
> --read-interface=../hpc-0.6.0.1,../hpc-0.6.0.1/src/%{MODULE/./-}.html\#%{NAME},libraries/hpc/dist-install/doc/html/hpc/hpc.haddock
> --read-interface=../process-1.2.0.0,../process-1.2.0.0/src/%{MODULE/./-}.html\#%{NAME},libraries/process/dist-install/doc/html/process/process.haddock
> --read-interface=../template-haskell-2.10.0.0,../template-haskell-2.10.0.0/src/%{MODULE/./-}.html\#%{NAME},libraries/template-haskell/dist-install/doc/html/template-haskell/template-haskell.haddock
> --read-interface=../time-1.4.2,../time-1.4.2/src/%{MODULE/./-}.html\#%{NAME},libraries/time/dist-install/doc/html/time/time.haddock
> --read-interface=../transformers-0.4.1.0,../transformers-0.4.1.0/src/%{MODULE/./-}.html\#%{NAME},libraries/transformers/dist-install/doc/html/transformers/transformers.haddock
> --read-interface=../unix-2.7.0.2,../unix-2.7.0.2/src/%{MODULE/./-}.html\#%{NAME},libraries/unix/dist-install/doc/html/unix/unix.haddock
> --optghc=-hisuf --optghc=dyn_hi --optghc=-osuf --optghc=dyn_o
> --optghc=-hcsuf --optghc=dyn_hc --optghc=-fPIC --optghc=-dynamic
> --optghc=-H32m --optghc=-O --optghc=-package-name
> --optghc=ghc-7.9.20140717 --optghc=-hide-all-packages --optghc=-i
> --optghc=-icompiler/basicTypes --optghc=-icompiler/cmm
> --optghc=-icompiler/codeGen --optghc=-icompiler/coreSyn
> --optghc=-icompiler/deSugar --optghc=-icompiler/ghci
> --optghc=-icompiler/hsSyn --optghc=-icompiler/iface
> --optghc=-icompiler/llvmGen --optghc=-icompiler/main
> --optghc=-icompiler/nativeGen --optghc=-icompiler/parser
> --optghc=-icompiler/prelude --optghc=-icompiler/profiling
> --optghc=-icompiler/rename --optghc=-icompiler/simplCore
> --optghc=-icompiler/simplStg --optghc=-icompiler/specialise
> --optghc=-icompiler/stgSyn --optghc=-icompiler/stranal
> --optghc=-icompiler/typecheck --optghc=-icompiler/types
> --optghc=-icompiler/utils --optghc=-icompiler/vectorise
> --optghc=-icompiler/stage2/build
> --optghc=-icompiler/stage2/build/autogen
> --optghc=-Icompiler/stage2/build
> --optghc=-Icompiler/stage2/build/autogen --optghc=-Icompiler/.
> --optghc=-Icompiler/parser --optghc=-Icompiler/utils
> --optghc=-Icompiler/../rts/dist/build --optghc=-Icompiler/stage2
> --optghc=-optP-DGHCI --optghc=-optP-include
> --optghc=-optPcompiler/stage2/build/autogen/cabal_macros.h
> --optghc=-package --optghc=Cabal-1.20.0.1 --optghc=-package
> --optghc=array-0.5.0.0 --optghc=-package --optghc=base-4.7.1.0
> --optghc=-package --optghc=bin-package-db-0.0.0.0 --optghc=-package
> --optghc=bytestring-0.10.4.0 --optghc=-package
> --optghc=containers-0.5.5.1 --optghc=-package
> --optghc=directory-1.2.1.0 --optghc=-package --optghc=filepath-1.3.0.2
> --optghc=-package --optghc=hoopl-3.10.0.1 --optghc=-package
> --optghc=hpc-0.6.0.1 --optghc=-package --optghc=process-1.2.0.0
> --optghc=-package --optghc=template-haskell-2.10.0.0 --optghc=-package
> --optghc=time-1.4.2 --optghc=-package --optghc=transformers-0.4.1.0
> --optghc=-package --optghc=unix-2.7.0.2 --optghc=-Wall
> --optghc=-fno-warn-name-shadowing --optghc=-XHaskell2010
> --optghc=-optc-DTHREADED_RTS --optghc=-DGHCI_TABLES_NEXT_TO_CODE
> --optghc

Re: a little phrustrated

2014-07-17 Thread Jan Stolarek
I've used Phabricator for the first time yesterday and have also experienced 
most of the problems 
mentioned by Richard. The most painful ones were:

1. Complaining about any untracked or uncommited changes in the source tree. 
This is mostly 
annoying. How can I tell arcanist to ignore such changes? Rant: I really don't 
like tools that 
try to be smarter than me and prohibit from doing what I want them to do.

2. Linters. I vote to disable the tab linter - we already have mechanisms to 
prevent introducing 
tabs in the source code. I'd also vote to disable whitespace linter unless we 
can tweak it to 
complain only about whitespaces introduced by commits in question.

I've also run into issues with updating my revision. `arc diff` did not seem to 
work. Sadly, I 
don't remember the details - I'll write them down if it happens again.

Janek


Dnia środa, 16 lipca 2014, Richard Eisenberg napisał:
> Hi all,
>
> I'm trying to use Phab for the first time this morning, and hitting a fair
> number of obstacles. I'm writing up my experiences here in order to figure
> out which of these are my fault, which can be fixed, and which are just
> things to live with; and also to help others who may go down the same path.
> If relevant, my diff is at https://phabricator.haskell.org/D73
>
> 1) I had some untracked files in a submodule repo. I couldn't find a way to
> get `arc diff` to ignore these, as they appeared to git to be a change in a
> tracked file (that is, a change to a submodule, which is considered
> tracked). `git stash` offered no help, so I had to delete the untracked
> files. This didn't cause real pain (the files were there in error), but it
> seems a weakness of the system if I can't make progress otherwise.
>
> 2) I develop and build in the same tree. This means that I often have a few
> untracked files in the outer, ghc.git repo that someone hasn't yet added to
> .gitignore. Thus, I need to say `--allow-untracked` to get `arc diff` to
> work. I will likely always need `--allow-untracked`, so I looked for a way
> to get this to be configured automatically. I found
> https://secure.phabricator.com/book/phabricator/article/arcanist/#configura
>tion , but the details there are sparse. Any advice?
>
> 3) The linter picks up and complains about tabs in any of my touched files.
> I can then write an excuse for every `arc diff` I do, or de-tab the files.
> In one case, I changed roughly one line in the file (MkCore.lhs) and didn't
> think it right to de-tab the whole file. Even if I did de-tab the whole
> file, then my eventual `arc land` would squash the whitespace commit in
> with my substantive commits, which we expressly don't want. I can imagine a
> fair amount of git fiddling which would push the whitespace commit to
> master and then rebase my substantive work on top so that the final,
> landed, squashed patch would avoid the whitespace changes, but this is
> painful. And advice on this? Just ignore the lint errors and write silly
> excuses? Or, is there a way Phab/arc can be smart enough to keep
> whitespace-only commits (perhaps tagged with the words "whitespace only" in
> the commit message) separate from other commits when squashing in `arc
> land`?
>
> 4) For better or worse, we don't currently require every file to be
> tab-free, just some of them. Could this be reflected in Phab's lint
> settings to avoid the problem in (3)? (Of course, a way to de-tab and keep
> the history nice would be much better!)
>
> 5) In writing my revision description, I had to add reviewers. I assumed
> these should be comma-separated. This worked and I have updated the Wiki.
> Please advise if I am wrong.
>
> 6) When I looked at my posted revision, it said that the revision was
> "closed"... and that I had done it! slyfox on IRC informed me that this was
> likely because I had pushed my commits to a wip/... branch. Is using wip
> branches with Phab not recommended? Or, can Phab be configured not to close
> revisions if the commit appears only in wip/... branches?
>
> 7) How can I "re-open" my revision?
>
> 8) Some time after posting, phaskell tells me that my build failed. OK.
> This is despite the fact that Travis was able to build the same commit
> (https://travis-ci.org/ghc/ghc/builds/30066130). I go to find out why it
> failed, and am directed to build log F3870
> (https://phabricator.haskell.org/file/info/PHID-FILE-hz2r4sjamkkrbf7nsz6b/)
>. I can't view the file online, but instead have to download and then ungzip
> it. Is it possible to view this file directly? Or not have it be
> compressed?
>
> 9) When I do view the build log, I get no answers. The end of the file
> comes abruptly in the middle of some haddock output, and the closest thing
> that looks like an error is about a missing link in a haddock tag
> `$kind_subtyping` in Type.lhs. I didn't touch this file, and I imagine the
> missing link has been there for some time, so I'm dubious that this is the
> real problem. Are these log files cut off?
>
> 10)

The build is broken? (Haddock parse error)

2014-07-17 Thread Páli Gábor János
Hello there,

I have just found the builds are failing due to this (see [1] for the full log):

"/usr/home/ghc-builder/work/builder/tempbuild/build/inplace/bin/haddock"
--odir="compiler/stage2/doc/html/ghc" --no-tmp-comp-dir
--dump-interface=compiler/stage2/doc/html/ghc/ghc.haddock --html
--hoogle --title="ghc-7.9.20140717: The GHC API"
--prologue="compiler/stage2/haddock-prologue.txt"
--read-interface=../Cabal-1.20.0.1,../Cabal-1.20.0.1/src/%{MODULE/./-}.html\#%{NAME},libraries/Cabal/Cabal/dist-install/doc/html/Cabal/Cabal.haddock
--read-interface=../array-0.5.0.0,../array-0.5.0.0/src/%{MODULE/./-}.html\#%{NAME},libraries/array/dist-install/doc/html/array/array.haddock
--read-interface=../base-4.7.1.0,../base-4.7.1.0/src/%{MODULE/./-}.html\#%{NAME},libraries/base/dist-install/doc/html/base/base.haddock
--read-interface=../bin-package-db-0.0.0.0,../bin-package-db-0.0.0.0/src/%{MODULE/./-}.html\#%{NAME},libraries/bin-package-db/dist-install/doc/html/bin-package-db/bin-package-db.haddock
--read-interface=../bytestring-0.10.4.0,../bytestring-0.10.4.0/src/%{MODULE/./-}.html\#%{NAME},libraries/bytestring/dist-install/doc/html/bytestring/bytestring.haddock
--read-interface=../containers-0.5.5.1,../containers-0.5.5.1/src/%{MODULE/./-}.html\#%{NAME},libraries/containers/dist-install/doc/html/containers/containers.haddock
--read-interface=../directory-1.2.1.0,../directory-1.2.1.0/src/%{MODULE/./-}.html\#%{NAME},libraries/directory/dist-install/doc/html/directory/directory.haddock
--read-interface=../filepath-1.3.0.2,../filepath-1.3.0.2/src/%{MODULE/./-}.html\#%{NAME},libraries/filepath/dist-install/doc/html/filepath/filepath.haddock
--read-interface=../hoopl-3.10.0.1,../hoopl-3.10.0.1/src/%{MODULE/./-}.html\#%{NAME},libraries/hoopl/dist-install/doc/html/hoopl/hoopl.haddock
--read-interface=../hpc-0.6.0.1,../hpc-0.6.0.1/src/%{MODULE/./-}.html\#%{NAME},libraries/hpc/dist-install/doc/html/hpc/hpc.haddock
--read-interface=../process-1.2.0.0,../process-1.2.0.0/src/%{MODULE/./-}.html\#%{NAME},libraries/process/dist-install/doc/html/process/process.haddock
--read-interface=../template-haskell-2.10.0.0,../template-haskell-2.10.0.0/src/%{MODULE/./-}.html\#%{NAME},libraries/template-haskell/dist-install/doc/html/template-haskell/template-haskell.haddock
--read-interface=../time-1.4.2,../time-1.4.2/src/%{MODULE/./-}.html\#%{NAME},libraries/time/dist-install/doc/html/time/time.haddock
--read-interface=../transformers-0.4.1.0,../transformers-0.4.1.0/src/%{MODULE/./-}.html\#%{NAME},libraries/transformers/dist-install/doc/html/transformers/transformers.haddock
--read-interface=../unix-2.7.0.2,../unix-2.7.0.2/src/%{MODULE/./-}.html\#%{NAME},libraries/unix/dist-install/doc/html/unix/unix.haddock
--optghc=-hisuf --optghc=dyn_hi --optghc=-osuf --optghc=dyn_o
--optghc=-hcsuf --optghc=dyn_hc --optghc=-fPIC --optghc=-dynamic
--optghc=-H32m --optghc=-O --optghc=-package-name
--optghc=ghc-7.9.20140717 --optghc=-hide-all-packages --optghc=-i
--optghc=-icompiler/basicTypes --optghc=-icompiler/cmm
--optghc=-icompiler/codeGen --optghc=-icompiler/coreSyn
--optghc=-icompiler/deSugar --optghc=-icompiler/ghci
--optghc=-icompiler/hsSyn --optghc=-icompiler/iface
--optghc=-icompiler/llvmGen --optghc=-icompiler/main
--optghc=-icompiler/nativeGen --optghc=-icompiler/parser
--optghc=-icompiler/prelude --optghc=-icompiler/profiling
--optghc=-icompiler/rename --optghc=-icompiler/simplCore
--optghc=-icompiler/simplStg --optghc=-icompiler/specialise
--optghc=-icompiler/stgSyn --optghc=-icompiler/stranal
--optghc=-icompiler/typecheck --optghc=-icompiler/types
--optghc=-icompiler/utils --optghc=-icompiler/vectorise
--optghc=-icompiler/stage2/build
--optghc=-icompiler/stage2/build/autogen
--optghc=-Icompiler/stage2/build
--optghc=-Icompiler/stage2/build/autogen --optghc=-Icompiler/.
--optghc=-Icompiler/parser --optghc=-Icompiler/utils
--optghc=-Icompiler/../rts/dist/build --optghc=-Icompiler/stage2
--optghc=-optP-DGHCI --optghc=-optP-include
--optghc=-optPcompiler/stage2/build/autogen/cabal_macros.h
--optghc=-package --optghc=Cabal-1.20.0.1 --optghc=-package
--optghc=array-0.5.0.0 --optghc=-package --optghc=base-4.7.1.0
--optghc=-package --optghc=bin-package-db-0.0.0.0 --optghc=-package
--optghc=bytestring-0.10.4.0 --optghc=-package
--optghc=containers-0.5.5.1 --optghc=-package
--optghc=directory-1.2.1.0 --optghc=-package --optghc=filepath-1.3.0.2
--optghc=-package --optghc=hoopl-3.10.0.1 --optghc=-package
--optghc=hpc-0.6.0.1 --optghc=-package --optghc=process-1.2.0.0
--optghc=-package --optghc=template-haskell-2.10.0.0 --optghc=-package
--optghc=time-1.4.2 --optghc=-package --optghc=transformers-0.4.1.0
--optghc=-package --optghc=unix-2.7.0.2 --optghc=-Wall
--optghc=-fno-warn-name-shadowing --optghc=-XHaskell2010
--optghc=-optc-DTHREADED_RTS --optghc=-DGHCI_TABLES_NEXT_TO_CODE
--optghc=-DSTAGE=2 --optghc=-Rghc-timing --optghc=-O2
--optghc=-no-user-package-db --optghc=-rtsopts --optghc=-odir
--optghc=compiler/stage2/build --optghc=-hidir
--optghc=compiler/st