Re: Using lzip instead of xz for distributed tarballs

2020-01-20 Thread Ben Gamari
Vanessa McHale  writes:

> Hello all,
>
>
> GHC is distributed as .tar.xz tarballs; I assume this is because it
> produces small tarballs. However, xz is ill-suited for archiving due to
> its lack of error recovery. Moreover, lzip produces smaller tarballs
> with GHC (I tested with ghc-8.8.2-x86_64-deb9-linux.tar) and
> decompression takes about the same amount of time.
>
Indeed I recall seeing the "Why xz is not suitable for archival
purposes" blog post quite a while ago and considered moving away from xz
at the time but wasn't entirely convinced that the benefits would
justify the churn, especially since xz tends to be pretty ubiquitous at
this point while lzip is a fair bit less so.

I'd be happy to hear further reasons why we should switch but I'll admit
that I still don't quite see what switching would buy us; we do have
a few backups spread across the planet so the probability of us having
to rely on the compressor for error recovery pretty small.

Cheers,

- Ben


signature.asc
Description: PGP signature
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: submodule instructions?

2020-01-20 Thread Ben Gamari
Richard Eisenberg  writes:

>> On Jan 17, 2020, at 9:15 PM, Ben Gamari  wrote:
>> 
>> I have added a bit of language to [submodules] explaining how to
>> accomplish this.
>
> Very helpful -- thanks. A few questions (preferably answered directly on the 
> wiki page):
>
> - Who is the `ghc` group and how does one join this group (is there a
> link to the current membership)? Or: is there a way to get CI working
> for those outside this group?
>
I've clarified this on the wiki but to summarize: The "ghc group" is
found here [1] and pretty much anyone who is interested in contributing
can request to be a member (with "developer" role). This gives you the
ability to push wip/ branches to any project in the ghc/ namespace.

[1] https://gitlab.haskell.org/ghc

> - I don't see haddock listed under ghc/packages. I do see in the
> example a way to access haddock just at ghc/. Which one is correct?
> Are there submodules other than haddock that are not listed in
> ghc/packages?
>
For historical reasons haddock is located under ghc/haddock, not
ghc/packages/haddock. 


signature.asc
Description: PGP signature
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: GitLab restart

2020-01-20 Thread Ben Gamari
Ben Gamari  writes:

> Ben Gamari  writes:
>
>> Hi everyone,
>>
>> In around 30 minutes I'll be migrating some data on gitlab.haskell.org
>> to a larger storage volume. This will take around 10 minutes, during
>> which time GitLab will down. I'll sent another email before I begin the
>> migration.
>>
> Starting migration momentarily.
>
The migration is now complete.

Cheers,

- Ben


signature.asc
Description: PGP signature
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: GitLab restart

2020-01-20 Thread Ben Gamari
Ben Gamari  writes:

> Hi everyone,
>
> In around 30 minutes I'll be migrating some data on gitlab.haskell.org
> to a larger storage volume. This will take around 10 minutes, during
> which time GitLab will down. I'll sent another email before I begin the
> migration.
>
Starting migration momentarily.

Cheers,

- Ben


signature.asc
Description: PGP signature
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


GitLab restart

2020-01-20 Thread Ben Gamari
Hi everyone,

In around 30 minutes I'll be migrating some data on gitlab.haskell.org
to a larger storage volume. This will take around 10 minutes, during
which time GitLab will down. I'll sent another email before I begin the
migration.

Cheers,

- Ben


signature.asc
Description: PGP signature
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: Unboxed Tuple in a single STG variable

2020-01-20 Thread Ömer Sinan Ağacan
Binders in STG can be bound to multi-values (stuff represented by multiple
values, e.g. unboxed tuples with more than one non-void arguments) initially but
before codegen those need to be eliminated. The pass that does is "unarise", see
GHC.Stg.Unarise module which has lots of notes explaning everything in details.

So CoreToStg generates STG with multi-value binders.
Unarise eliminates those binders, making sure every binder holds one value.

Ömer

Csaba Hruska , 20 Oca 2020 Pzt, 13:41
tarihinde şunu yazdı:
>
> Hello,
>
> Can an STG variable (Id) store a whole unboxed tuple value?
> Or is it required to decompose a returned unboxed value immediately by using 
> an StgCase expression?
> If so, then is it correct that the STG variables can store values only from 
> the following types: Addr, Float, Double, Int, Word, Ptr (for boxed values)? 
> (and no multi-value values)
>
> Thanks,
> Csaba
> ___
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Unboxed Tuple in a single STG variable

2020-01-20 Thread Csaba Hruska
Hello,

Can an STG variable (Id) store a whole unboxed tuple value?
Or is it required to decompose a returned unboxed value immediately by
using an StgCase expression?
If so, then is it correct that the STG variables can store values only from
the following types: Addr, Float, Double, Int, Word, Ptr (for boxed
values)? (and no multi-value values)

Thanks,
Csaba
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: GHC perf

2020-01-20 Thread David Eichmann

Hi Simon,


  * There are two things going on:

 1. CI perf measurements
 2. Local machine perf measurements

I think that they are somehow handled differently (why?) but they are 
all muddled up on the wiki page.


They are handled differently because we do not want to compare local 
metrics with CI metrics. The exception is when local metrics don't 
exist, then we fall back to CI metrics as a baseline (see How baseline 
metrics are calculated 
).



  * My goal is this:

  o Start with a master commit, say from Dec 2019.
  o Implement some change, on a branch.
  o sh validate –legacy (or something else if you like)
  o Look at perf regressions.


Getting to the *raw data* should be easy:

1. Checkout an the  commit.
2. Use `git status` to double check git sees a clean working tree.
3. Run the performance tests.
4. Check out your  branch.
5. Use `git status` to double check git sees a clean working tree (else
   commit any changes)
6. Run the performance tests.
7. Compare metrics (filtering for `local` metrics and outputting a chart):

|python3 testsuite/driver/perf_notes.py --chart chart.html --test-env 
local  |


see `|python3 testsuite/driver/perf_notes.py --help`| for more filtering 
options. This doesn't detect regressions automatically, it only shows 
you the raw data. Ideally we'd add an option to the testrunner to let 
you specify a baseline commit manually. I suspect that would be close to 
what you're looking for.


  * I believe I have first to utter the incantation

$ git fetch https://gitlab.haskell.org/ghc/ghc-performance-notes.git 
refs/notes/perf:refs/notes/ci/perf



Yes, this fetches the latest CI metrics into your git notes.


  * But then:
  o How do I ensure that the baseline perf numbers I get relate to
the master commit I started from, back in Dec 2019?  I don’t
want numbers from Jan 2020.


see above.


  o If I rebase my branch on top of HEAD, say, how do I update the
perf baseline numbers to be for HEAD

The test runner should use HEAD's metrics automatically (see How 
baseline metrics are calculated 
), 
though you will need to fetch CI metrics or run the perf tests locally 
on HEAD to get the relevant metrics.


  o Generally, how can I tell the commit to which the baseline
numbers relate?

The test runner will output (per test) which baseline commit is used 
e.g. "... from local

baseline @ HEAD~2" says the baseline was a local run from 2 commits ago.


  * Also, in my tree I have a series of incremental changes; I want to
see if any of them have perf regressions.    How do I do that?

You can run the perf tests on each commit *in commit order*, and the 
previous commit will always be used as the baseline. You can also then 
chart the results:


|python3 testsuite/driver/perf_notes.py --chart chart.html --test-env 
local ..|


Sorry if this is a bit unoptimal, but I Hope that helps

- David E



--
David Eichmann, Haskell Consultant
Well-Typed LLP, http://www.well-typed.com

Registered in England & Wales, OC335890
118 Wymering Mansions, Wymering Road, London W9 2NF, England

___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: is Unlifted Type == Primitive Type?

2020-01-20 Thread Sebastian Graf
Hi Csaba,

Yes, boxed unlifted ADTs are supported by code-gen, or at least the fix for
codegen to deal with it is [rather simple](
https://gitlab.haskell.org/ghc/ghc/commit/fc4e2a03ebb40e2268ec0deb9833ec82bd2d7bee
).

Hope that helps.
Sebastian

Am Mo., 20. Jan. 2020 um 11:13 Uhr schrieb Csaba Hruska <
csaba.hru...@gmail.com>:

> I'm also interested if Boxed Unlifted non Primitive types are supported by
> the codegen?
> Sorry, but I'm not confident enough in the topic to update the wiki.
>
>
> On Mon, Jan 20, 2020 at 10:58 AM Richard Eisenberg 
> wrote:
>
>> The recent addition of -XUnliftedNewtypes means that user-defined
>> newtypes (
>> https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0098-unlifted-newtypes.rst)
>> can indeed be unlifted and unboxed. There is also a proposal for more
>> general unlifted data (
>> https://github.com/ghc-proposals/ghc-proposals/pull/265).
>>
>> If the wiki is out of date, do you think you could update it?
>>
>> Thanks!
>> Richard
>>
>> On Jan 20, 2020, at 9:45 AM, Csaba Hruska  wrote:
>>
>> Hello,
>>
>> According to GHC Wiki
>> 
>> it seems that only primitive types can be unlifted.
>> Is this true in general? (i.e. no user type can be unlifted)
>> 
>> Does the Stg to Cmm codegen support compilation for a variable of user
>> defined ADT as unlifted?
>> i.e. some analysis proved that it is always a constructor and never a
>> thunk.
>>
>> Thanks,
>> Csaba
>>
>> ___
>> ghc-devs mailing list
>> ghc-devs@haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>>
>>
>> ___
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: is Unlifted Type == Primitive Type?

2020-01-20 Thread Csaba Hruska
I'm also interested if Boxed Unlifted non Primitive types are supported by
the codegen?
Sorry, but I'm not confident enough in the topic to update the wiki.


On Mon, Jan 20, 2020 at 10:58 AM Richard Eisenberg  wrote:

> The recent addition of -XUnliftedNewtypes means that user-defined newtypes
> (
> https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0098-unlifted-newtypes.rst)
> can indeed be unlifted and unboxed. There is also a proposal for more
> general unlifted data (
> https://github.com/ghc-proposals/ghc-proposals/pull/265).
>
> If the wiki is out of date, do you think you could update it?
>
> Thanks!
> Richard
>
> On Jan 20, 2020, at 9:45 AM, Csaba Hruska  wrote:
>
> Hello,
>
> According to GHC Wiki
> 
> it seems that only primitive types can be unlifted.
> Is this true in general? (i.e. no user type can be unlifted)
> 
> Does the Stg to Cmm codegen support compilation for a variable of user
> defined ADT as unlifted?
> i.e. some analysis proved that it is always a constructor and never a
> thunk.
>
> Thanks,
> Csaba
>
> ___
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
>
>
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: is Unlifted Type == Primitive Type?

2020-01-20 Thread Richard Eisenberg
The recent addition of -XUnliftedNewtypes means that user-defined newtypes 
(https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0098-unlifted-newtypes.rst
 
)
 can indeed be unlifted and unboxed. There is also a proposal for more general 
unlifted data (https://github.com/ghc-proposals/ghc-proposals/pull/265 
).

If the wiki is out of date, do you think you could update it?

Thanks!
Richard

> On Jan 20, 2020, at 9:45 AM, Csaba Hruska  wrote:
> 
> Hello,
> 
> According to GHC Wiki 
> 
>  it seems that only primitive types can be unlifted.
> Is this true in general? (i.e. no user type can be unlifted)
> 
> Does the Stg to Cmm codegen support compilation for a variable of user 
> defined ADT as unlifted?
> i.e. some analysis proved that it is always a constructor and never a thunk.
> 
> Thanks,
> Csaba
> 
> ___
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


is Unlifted Type == Primitive Type?

2020-01-20 Thread Csaba Hruska
Hello,

According to GHC Wiki

it seems that only primitive types can be unlifted.
Is this true in general? (i.e. no user type can be unlifted)
[image: image.png]
Does the Stg to Cmm codegen support compilation for a variable of user
defined ADT as unlifted?
i.e. some analysis proved that it is always a constructor and never a thunk.

Thanks,
Csaba
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Re: submodule instructions?

2020-01-20 Thread Richard Eisenberg


> On Jan 17, 2020, at 9:15 PM, Ben Gamari  wrote:
> 
> I have added a bit of language to [submodules] explaining how to
> accomplish this.

Very helpful -- thanks. A few questions (preferably answered directly on the 
wiki page):

- Who is the `ghc` group and how does one join this group (is there a link to 
the current membership)? Or: is there a way to get CI working for those outside 
this group?

- I don't see haddock listed under ghc/packages. I do see in the example a way 
to access haddock just at ghc/. Which one is correct? Are there submodules 
other than haddock that are not listed in ghc/packages?

Thanks!
Richard___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


Github mirror

2020-01-20 Thread Phyx
Hi Ben,

It looks like the github mirror for ghc hasn't updated in a month.

Kind regards,
Tamar

Sent from my Mobile
___
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs