Re: Problems compiling with llvm-3.5.0-2 on ARM

2014-11-06 Thread Jens Petersen
On 6 November 2014 00:49, Carter Schonwald carter.schonw...@gmail.com
wrote:

 TL;DR, you cant use llvm 3.5 or 3.6 with any current ghc release. use 3.4
 or older


Can we expect 3.5 (3.6) to work with ghc-7.10?
(FWIW helloworld seems to work ok with ghc-7.8.3 on x86_64, but not on
ARMv7.)

Or anyone have any patches?

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


RE: [GHC] #9741: Interpreter stack checks are not quite right

2014-11-06 Thread Simon Peyton Jones
|   Oh, and the reason you have the debug RTS in your compiler is because
|  `-ticky` implies `-debug

Interesting.  I didn't know that.  Is that a good idea? Wouldn't it be better 
to make them independent?

Simon

|  -Original Message-
|  From: ghc-tickets [mailto:ghc-tickets-boun...@haskell.org] On Behalf
|  Of GHC
|  Sent: 06 November 2014 08:37
|  Cc: ghc-tick...@haskell.org
|  Subject: Re: [GHC] #9741: Interpreter stack checks are not quite right
|  
|  #9741: Interpreter stack checks are not quite right
|  -+
|  --
|  -+---
|Reporter:  simonpj |Owner:  simonmar
|Type:  bug |   Status:  closed
|Priority:  highest |Milestone:  7.10.1
|   Component:  Compiler|  Version:  7.8.3
|  Resolution:  fixed   | Keywords:
|Operating System:  | Architecture:
|  Unknown/Multiple
|Unknown/Multiple   |   Difficulty:  Unknown
| Type of failure:  |   Blocked By:
|None/Unknown   |  Related Tickets:
|   Test Case:  |
|Blocking:  |
|  Differential Revisions:  |
|  -+
|  --
|  -+---
|  
|  Comment (by simonmar):
|  
|   Oh, and the reason you have the debug RTS in your compiler is because
|  `-ticky` implies `-debug`.  Incidentally this is probably slowing down
|  your builds quite a lot, so you might want to turn it off.
|  
|  --
|  Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9741#comment:5
|  GHC http://www.haskell.org/ghc/
|  The Glasgow Haskell Compiler
|  ___
|  ghc-tickets mailing list
|  ghc-tick...@haskell.org
|  http://www.haskell.org/mailman/listinfo/ghc-tickets
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: loadInterfaceForModule

2014-11-06 Thread Gergely Risko
Hi Edward,

Thank you for your mail.

On 2014-11-05 18:37 (Wednesday), Edward Z. Yang ezy...@mit.edu writes:
 Hello Gergely,

 You added a function loadInterfaceForModule which has the exact same
 type as loadModuleInterface, except when debugging is on it has an extra
 check to ensure you don't try to load the the current module (this seems
 like a general invariant that would be good to enforce).

As you can imagine after 1 year I only have limited recollection on
this, but now I checked out the repository to see the differences for
myself and I agree with your assessment, my function seems superfluous.

Also loadModuleInterfaces seems to be just a mapM_ of
loadModuleInterface instead of the four line implementation.  Maybe it
is being done like that for performance, but looking into
initIfaceTcRn does not seem very expensive.  Am I mistaken?

 Was there any particular reason you created an extra function for this,
 or can we just use the existing function?

Feel free to use the existing one.  By the way, these changes were
done as part of making it possible for TH to handle annotations,
therefore the relevant tests are in tests/annotations (grep for
reifyModule).

Thanks for taking care of this!
Gergely

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


Re: Resurrecting ticky code

2014-11-06 Thread Mateusz Lenik
On Tue, Nov 04, 2014 at 09:52:23AM +, Simon Peyton Jones wrote:
 We don’t have vectored returns any more, so you can drop that one.

Thanks!

 
 For magic eight there are some native-wordsize constants defined already.
 E.g. see how PrelRules.wordSizeInBits is computed.

As far as I understood that constant in ticky code was associated with number
of bins in the histogram, so I need to find a way to define it both in C and in
Haskell (preferably once). Actually there are nine bins, but eight is the index
of the last one.

Best,
Mateusz

 
 Thanks to Jan for helping
 
 SImon
 
 |  -Original Message-
 |  From: ghc-devs [mailto:ghc-devs-boun...@haskell.org] On Behalf Of
 |  Mateusz Lenik
 |  Sent: 03 November 2014 17:19
 |  To: ghc-devs@haskell.org
 |  Subject: Resurrecting ticky code
 |  
 |  Hi *,
 |  
 |  Recently I started working on resurrecting ticky code[1] and got to
 |  the point where I can compile and run bumpHistogram as well as
 |  accompanying code in RTS.
 |  
 |  Work in progress version can be found at [2], but there are few things
 |  remaining to get it working:
 |  
 |  * missing calls to tickyReturnNewCon, tickyUnboxedTupleReturn and
 |tickyVectoredReturn need to be added. Unfortunately I'm not familiar
 |  with the
 |code enough to find the right place to insert them.
 |  
 |  * magic eight needs to be replaced by a constant both Haskell and C
 |  files.
 |Preprocessor macro seems to be the simplest choice here, however I
 |  don't find
 |it the cleanest way to do it.
 |  
 |  I would be very grateful if someone could take a look and point me
 |  into the right direction.
 |  
 |  
 |  Best,
 |  Mateusz
 |  
 |  1: https://ghc.haskell.org/trac/ghc/ticket/8308
 |  2: https://github.com/mlen/ghc/compare/ticky
 |  
 |  --
 |  Mateusz Lenik
 |  GPG: B865 E86A D36C 11A5 C1F8  C1D9 AAD4 CEC9 6B94 92C4

-- 
Mateusz Lenik
GPG: B865 E86A D36C 11A5 C1F8  C1D9 AAD4 CEC9 6B94 92C4


pgpjtex_1fJp0.pgp
Description: PGP signature
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


ANN: Updating flag description in the User's Guide

2014-11-06 Thread Jan Stolarek
Devs,

I have some important information for everyone.

  TL;DR1 As a rule of thumb, whenever you modify DynFlags or StaticFlags please
  make absolutely sure that your changes are described in the User's Guide. See
  Note [Updating flag description in the User's Guide] in DynFlags.

  TL;DR2 Your help is needed to update the User's Guide.

I've spent last two days on updating the flag descriptions in the User's Guide
(#9358). Saying that things were a complete mess would be an understatement. We
had lots of flags that were not documented in the user's guide, we had
documentation for flags that no longer exist, lots of flags were incorrectly
labeled as static, etc. It seems that we don't have a habit of updating User's
Guide when we change the code responsible for flags. I updated huge chunks of
the documentation and things are in a better shape now. But if we forget to
update documentation when we make changes then in 2 or 3 years things will most
likely be as bad as they were before my clean-up. I added a Note and lots of
references to it to remind us about that. If things go well we might even have a
Herald rule to remind about updating User's Guide whenever DynFlags and
StaticFlags are modified by a commit/revision [1].

However, the task of updating flag descriptions in the User's Guide is not
finished. My main focus were the -f*/-fno-* optimisation flags described
primarily in sections 4.10 and 4.19.15 (note that HEAD has different section
numbers than 7.8.3). I updated what I could but there are still some
descriptions missing - I'm not familiar with some of flags that we have. Here's
where your help is required.

These flags are currently completely missing from the User's Guide:

  -fbuilding-cabal-package
  -fflat-cache
  -fhpc-no-auto
  -fkill-absence
  -fkill-one-shot
  -fsimple-list-literals
  -fspecialise-aggressively
  -fuse-rpaths
  -fspec-constr-recursive
  -ffloat-lam-args
  -ffloat-all-lams

If you can provide description for any of these flags please edit flags.xml and
using.xml. I suspect that -fkill-absence might be related to demand analysis -
CCing Nicolas Frisby.

Following flags are listed in Flag Reference section (4.19) with a brief one
sentence description but they don't have a detailed description in section 4.10
(using.xml):

  -fcall-arity (CCing Joachim)
  -funfolding-fun-discount
  -funfolding-dict-discount
  -funfolding-keeness-factor
  -frule-check (see #9776)

Following flags have a detailed description but it is confusing:

  -fdo-eta-reduction
  -fdo-lambda-eta-expansion

Follwoing flags have a description but it is too brief. We should have more
details:

  -fdicts-cheap
  -fdicts-strict
  -fdmd-tx-dict-sel (Nicolas, can you update that?)
  -fmax-inline-memcpy-insns
  -fmax-inline-memset-insns
  -fmax-worker-args
  -fno-opt-coercion
  -fno-pre-inlining
  -fsimplifier-phases
  -fspec-constr-threshold
  -fspec-constr-count
  -fstrictness-before

These flags were deliberately omitted from the User's Guide because they are
deprectaed and will be removed:

  -fext-core
  -frewrite-rules

For these flags Flag Reference section provides the description of their -fno-*
version:

  -fembed-manifest
  -fgen-manifest
  -fghci-history
  -fghci-sandbox
  -fpre-inlining
  -fprint-bind-contents
  -fprof-count-entries
  -fshared-implib

This seems to go against our convention of describing the flags. Should we
revert to desribing their normal version (ie. ones that enable something, not
disable)?

As part of my work I also removed -ddump-core-pipeline and -ddump-simpl-phases,
which weren;t very useful. And I cleaned up DynFlags by putting some of the long
lists of flags into alphabetical order. This change is a bit invasive - I'm
sorry if it causes merge conflicts, but I believe that in the long run this is
beneficial.

As I already said I focused primarily on -f* flags. But we should also make sure
that documentation of remaining flags is up to date, especially the -d* ones. I
don't have more time to put into this so I'm asking for a collective effort to
update the User's Guide, especially that we are moving closer to 7.10 release.

Janek

[1] https://phabricator.haskell.org/T52
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Daily documentation build?

2014-11-06 Thread Joachim Breitner
Hi,

a while ago someone said that we have daily builds of the documentation.
But...

 * it is slightly tricky to find it. Starting from
https://ghc.haskell.org/trac/ghc/wiki/ I had to follow the “Guilde is
also availble” link about daily builds, and then the link from the
summary. Ok if one knows where to look, but hard to discover by itself.

 * it seems that they are not built any more.
http://haskell.inf.elte.hu/docs/ lists Aug-18 as the latest.

Having that would have made it easier for me to review the state of the
docs on flags that Jan is writing about.

Greetings,
Joachim

-- 
Joachim “nomeata” Breitner
  m...@joachim-breitner.de • http://www.joachim-breitner.de/
  Jabber: nome...@joachim-breitner.de  • GPG-Key: 0xF0FBF51F
  Debian Developer: nome...@debian.org



signature.asc
Description: This is a digitally signed message part
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: [commit: ghc] master: Remove -ddump-simpl-phases flag (ad8457f)

2014-11-06 Thread Johan Tibell
I think this flag is useful for debugging e.g. why something didn't
optimize the way you thought.
On Nov 6, 2014 1:05 PM, g...@git.haskell.org wrote:

 Repository : ssh://g...@git.haskell.org/ghc

 On branch  : master
 Link   :
 http://ghc.haskell.org/trac/ghc/changeset/ad8457f93807e3b7a9a24867ed69dc93662a29e3/ghc

 ---

 commit ad8457f93807e3b7a9a24867ed69dc93662a29e3
 Author: Jan Stolarek jan.stola...@p.lodz.pl
 Date:   Wed Nov 5 13:37:25 2014 +0100

 Remove -ddump-simpl-phases flag


 ---

 ad8457f93807e3b7a9a24867ed69dc93662a29e3
  compiler/main/DynFlags.hs| 15 +++
  compiler/simplCore/CoreMonad.lhs | 40
 ++--
  compiler/simplCore/SimplCore.lhs |  9 +
  docs/users_guide/debugging.xml   | 11 ---
  docs/users_guide/flags.xml   |  6 --
  5 files changed, 14 insertions(+), 67 deletions(-)

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

 git diff-tree --root --patch-with-stat --no-color --find-copies-harder
 --ignore-space-at-eol --cc ad8457f93807e3b7a9a24867ed69dc93662a29e3
 ___
 ghc-commits mailing list
 ghc-comm...@haskell.org
 http://www.haskell.org/mailman/listinfo/ghc-commits

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


RE: Daily documentation build?

2014-11-06 Thread Simon Peyton Jones
|   * it is slightly tricky to find it. Starting from
|  https://ghc.haskell.org/trac/ghc/wiki/ I had to follow the “Guilde is
|  also availble” link about daily builds, and then the link from the
|  summary. Ok if one knows where to look, but hard to discover by
|  itself.

Where would you expect to find it?  Serious question!


Here's how you can:
GHC home page: https://www.haskell.org/ghc/
Click on Documentation: https://www.haskell.org/haskellwiki/GHC
You can find the latest documentation for the current HEAD here

But it'd not very prominent.  Where else should we add a link?

Simon


|  -Original Message-
|  From: ghc-devs [mailto:ghc-devs-boun...@haskell.org] On Behalf Of
|  Joachim Breitner
|  Sent: 06 November 2014 12:28
|  To: ghc-devs@haskell.org
|  Subject: Daily documentation build?
|  
|  Hi,
|  
|  a while ago someone said that we have daily builds of the
|  documentation.
|  But...
|  
|   * it is slightly tricky to find it. Starting from
|  https://ghc.haskell.org/trac/ghc/wiki/ I had to follow the “Guilde is
|  also availble” link about daily builds, and then the link from the
|  summary. Ok if one knows where to look, but hard to discover by
|  itself.
|  
|   * it seems that they are not built any more.
|  http://haskell.inf.elte.hu/docs/ lists Aug-18 as the latest.
|  
|  Having that would have made it easier for me to review the state of
|  the docs on flags that Jan is writing about.
|  
|  Greetings,
|  Joachim
|  
|  --
|  Joachim “nomeata” Breitner
|m...@joachim-breitner.de • http://www.joachim-breitner.de/
|Jabber: nome...@joachim-breitner.de  • GPG-Key: 0xF0FBF51F
|Debian Developer: nome...@debian.org

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


Re: STM and GC write barrier

2014-11-06 Thread Simon Marlow

On 15/09/2014 17:50, Ryan Yates wrote:

I'm starting to get to the bottom of something that has been puzzling me
for a while.  Recently commit 6d784c43592290ec16db8b7f0f2a012dff3ed497
[1] introduced the GC write barrier for TVars.  Not fully understanding
things and reading the commit message to be saying that this was an
optimization, I implemented my hardware transactional memory support
without the write barrier (avoiding the extra work inside a
transaction).  This resulted in occasional crashes where a TVar which
was point to a valid heap object when it was committed, pointed to
garbage later.  My understanding was that the TVar ended up in a later
generation then the value that it came to point to and without getting
added to the mut list, the value was collected.  Adding the write
barrier to all TVars written in my hardware transaction made the problem
go away.

While this all makes sense to me, what doesn't make as much sense is how
STM prior to the commit above was not susceptible to the same problem.
  Is there some machinery to avoid this issue that I'm still missing?


Sorry for the delay, I'm just catching up with this mailing list.

Prior to this commit, the garbage collector would treat *all* TVars in 
the old generation as potentially modified, and traverse them all during 
every GC.  This is expensive when there are a lot of TVars, which meant 
that TVar-based data structures such as TChan would perform very badly 
with a large number of elements.  The fix is to track writes to TVars in 
the old generation, which is what that commit did.


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


Re: Daily documentation build?

2014-11-06 Thread Joachim Breitner
Hi,


Am Donnerstag, den 06.11.2014, 12:32 + schrieb Simon Peyton Jones:
 |   * it is slightly tricky to find it. Starting from
 |  https://ghc.haskell.org/trac/ghc/wiki/ I had to follow the “Guilde is
 |  also availble” link about daily builds, and then the link from the
 |  summary. Ok if one knows where to look, but hard to discover by
 |  itself.
 
 Where would you expect to find it?  Serious question!

I was expecting that question, but I don’t have a good answer.

Probably there where I can actually find it:

Sidebar link „Infrastructure“ → link „user documentation“.

I guess we are fine.

Greetings,
Joachim
-- 
Joachim “nomeata” Breitner
  m...@joachim-breitner.de • http://www.joachim-breitner.de/
  Jabber: nome...@joachim-breitner.de  • GPG-Key: 0xF0FBF51F
  Debian Developer: nome...@debian.org



signature.asc
Description: This is a digitally signed message part
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: [commit: ghc] master: Fix a couple of inaccurate stack checks (3bebf3c)

2014-11-06 Thread Joachim Breitner
Hi Simon,


with

Am Mittwoch, den 05.11.2014, 18:15 + schrieb g...@git.haskell.org:
 commit 3bebf3c2d92e6defc6d17ffa237cc4a9cad71dcf
 Author: Simon Marlow marlo...@gmail.com
 Date:   Tue Nov 4 21:31:00 2014 +
 
 Fix a couple of inaccurate stack checks

I observe a 5% runtime performance regression in nofib’s integer
benchmark:
http://ghcspeed-nomeata.rhcloud.com/timeline/?exe=2base=2%2B68ben=nofib%2Ftime%2Fintegerenv=2revs=50equid=on

(The graph looks weird because codespeed doesn’t get the order of
commits right.)

Expected? Or worth looking into?

Greetings,
Joachim


-- 
Joachim “nomeata” Breitner
  m...@joachim-breitner.de • http://www.joachim-breitner.de/
  Jabber: nome...@joachim-breitner.de  • GPG-Key: 0xF0FBF51F
  Debian Developer: nome...@debian.org



signature.asc
Description: This is a digitally signed message part
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: ANN: Updating flag description in the User's Guide

2014-11-06 Thread RodLogic
What about standardizing on an 'experimental' prefix such as -fx-use-rpaths
or -fx-kill-oneshot? These flags would not be added to the user guide and
their intent clear when actually using them.

On Thu, Nov 6, 2014 at 10:28 AM, Simon Marlow marlo...@gmail.com wrote:

 On 06/11/2014 12:06, Jan Stolarek wrote:

 Devs,

 I have some important information for everyone.

TL;DR1 As a rule of thumb, whenever you modify DynFlags or StaticFlags
 please
make absolutely sure that your changes are described in the User's
 Guide. See
Note [Updating flag description in the User's Guide] in DynFlags.

TL;DR2 Your help is needed to update the User's Guide.

 I've spent last two days on updating the flag descriptions in the User's
 Guide
 (#9358). Saying that things were a complete mess would be an
 understatement. We
 had lots of flags that were not documented in the user's guide, we had
 documentation for flags that no longer exist, lots of flags were
 incorrectly
 labeled as static, etc. It seems that we don't have a habit of updating
 User's
 Guide when we change the code responsible for flags. I updated huge
 chunks of
 the documentation and things are in a better shape now. But if we forget
 to
 update documentation when we make changes then in 2 or 3 years things
 will most
 likely be as bad as they were before my clean-up. I added a Note and lots
 of
 references to it to remind us about that. If things go well we might even
 have a
 Herald rule to remind about updating User's Guide whenever DynFlags and
 StaticFlags are modified by a commit/revision [1].


 Your efforts are much appreciated, thankyou :)

  These flags are currently completely missing from the User's Guide:

-fbuilding-cabal-package
-fflat-cache
-fhpc-no-auto
-fkill-absence
-fkill-one-shot
-fsimple-list-literals
-fspecialise-aggressively
-fuse-rpaths
-fspec-constr-recursive
-ffloat-lam-args
-ffloat-all-lams


 Sometimes we add flags that are for experimentation or development
 purposes and not intended for user consumption, and these tend not to be
 added to the User's Guide.  I suspect many of the flags you mention fall
 into this category.  I suggest for these we have a specific comment in the
 source developer use only; undocumented so that we know they don't need
 to go in the User's Guide.

  For these flags Flag Reference section provides the description of their
 -fno-*
 version:

-fembed-manifest
-fgen-manifest
-fghci-history
-fghci-sandbox
-fpre-inlining
-fprint-bind-contents
-fprof-count-entries
-fshared-implib

 This seems to go against our convention of describing the flags. Should we
 revert to desribing their normal version (ie. ones that enable something,
 not
 disable)?


 Flags that are on by default we often document the no- version
 deliberately, because this is the form the user is most likely to want.
 Documenting the positive version sounds strange and is likely to be
 confusing.  I'm surprised you didn't include -fomit-yields here.

  As part of my work I also removed -ddump-core-pipeline and
 -ddump-simpl-phases,


 isn't -ddump-simpl-phases useful?  what's the other way to do that?

 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: Daily documentation build?

2014-11-06 Thread Páli Gábor János
2014-11-06 13:27 GMT+01:00 Joachim Breitner m...@joachim-breitner.de:
 a while ago someone said that we have daily builds of the documentation.
 But...

I guess that was me, but I cannot do the Windows builds any more,
because the Cabal library update broken the build for me.  (See my
previous mails on the subject, even from a few days back ago.)
However, this would be essential to generate a full documentation
snapshot.

  * it seems that they are not built any more.
 http://haskell.inf.elte.hu/docs/ lists Aug-18 as the latest.

That is September 18, to be more precise.

 Having that would have made it easier for me to review the state of the
 docs on flags that Jan is writing about.

Until the Windows build is fixed, I could do documentation builds
without the Win32 library if that is okay.
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: ANN: Updating flag description in the User's Guide

2014-11-06 Thread Jan Stolarek
 Sometimes we add flags that are for experimentation or development
 purposes and not intended for user consumption, and these tend not to be
 added to the User's Guide.  I suspect many of the flags you mention fall
 into this category.  I suggest for these we have a specific comment in
 the source developer use only; undocumented so that we know they don't
 need to go in the User's Guide.
I don't like that policy. What if some of the mentioned flags could be useful 
for my development 
work but I have no idea how to use these flags because they are not documented? 
I think we should 
have these documented as well, possibly with a note saying that this is 
experimental/unstable.

 isn't -ddump-simpl-phases useful?  what's the other way to do that?
I'll reply in a thread started by Johan.

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


Re: [commit: ghc] master: Remove -ddump-simpl-phases flag (ad8457f)

2014-11-06 Thread Jan Stolarek
Simon Marlow wrote:
 isn't -ddump-simpl-phases useful?  what's the other way to do that?
-dverbose-core2core + -ddump-simple-stats

Johan Tibell wrote:
 I think this flag is useful for debugging e.g. why something didn't
 optimize the way you thought.
Well, you can get that information using flags mentioned above. It seemed that 
-ddump-simpl-phases 
is not used and can be safely removed. It wasn't documented at all, so the only 
way to figure out 
how it works was to look hard at the code. The output itself was rather cryptic 
- no information 
about the phase for which the stats are displayed. Again, the only way to make 
sense of that 
output was looking at the code to figure out the precise ordering of Core 
optimisations. 
With -dverbose-core2core the output makes a lot more sense because it directly 
follows the output 
of the phase.

Simon PJ and Austin spoke in favour of removing that flag, so I went ahead and 
did that. But if 
indeed was used by someone to do their work we could revert that.

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


Re: ANN: Updating flag description in the User's Guide

2014-11-06 Thread Jan Stolarek
 What about standardizing on an 'experimental' prefix such as -fx-use-rpaths
 or -fx-kill-oneshot? These flags would not be added to the user guide and
 their intent clear when actually using them.
As already stated in an earlier reply I think we should have documentation for 
the sake of other 
developers.

I don't like the idea of separate prefix for experimental flags. This could be 
problematic when 
the flag becomes stable - we would have to change its name and that would break 
backwards 
compatibility.

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


Re: ANN: Updating flag description in the User's Guide

2014-11-06 Thread Johan Tibell
Agreed. For example, the HTTP standard has moved away from X-prefixed
headers for similar reasons.

On Thu, Nov 6, 2014 at 2:13 PM, Jan Stolarek jan.stola...@p.lodz.pl wrote:

  What about standardizing on an 'experimental' prefix such as
 -fx-use-rpaths
  or -fx-kill-oneshot? These flags would not be added to the user guide and
  their intent clear when actually using them.
 As already stated in an earlier reply I think we should have documentation
 for the sake of other
 developers.

 I don't like the idea of separate prefix for experimental flags. This
 could be problematic when
 the flag becomes stable - we would have to change its name and that would
 break backwards
 compatibility.

 Janek
 ___
 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: Resurrecting ticky code

2014-11-06 Thread Jan Stolarek
Mateusz,

I had a moment to take a look at your patch. Here are some hints:

 * missing calls to tickyReturnNewCon, tickyUnboxedTupleReturn and
   tickyVectoredReturn need to be added. Unfortunately I'm not familiar with
 the code enough to find the right place to insert them.
I think that you should look at StgCmmExpr and try to figure out places that we 
might be 
interested in for ticky measurements. For example, I'm looking at cgIdApp and I 
see we're doing 
ticky profiling for SlowCall and DirectEntry but we're not doing it for 
ReturnIt, EnterIt and 
JumpToIt*. I suggest adding ticky profiling there. I think it's possible to 
figure out more 
places where it makes sense to have ticky counters.

 * magic eight needs to be replaced by a constant both Haskell and C files.
   Preprocessor macro seems to be the simplest choice here, however I don't
 find it the cleanest way to do it.
I don't know how to define such a constant - I would have to spent some time to 
try to figure it 
out. Perhaps you can go to #ghc IRC channel and ask there? Usually there are 
some people that 
work on the RTS and might be familiar with how this is done (Edward for 
example).

Oh, and if you're working on a patch please assign yourself as the owner of 
#8308 so that no one 
else starts working on this. If you have a patch for review please submit it 
using Phabricator 
[1].

Janek

[1] https://ghc.haskell.org/trac/ghc/wiki/Phabricator
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs


Re: STM and GC write barrier

2014-11-06 Thread Ryan Yates
Ok, that explains it.  Thanks!

On Thu, Nov 6, 2014 at 7:34 AM, Simon Marlow marlo...@gmail.com wrote:

 On 15/09/2014 17:50, Ryan Yates wrote:

 I'm starting to get to the bottom of something that has been puzzling me
 for a while.  Recently commit 6d784c43592290ec16db8b7f0f2a012dff3ed497
 [1] introduced the GC write barrier for TVars.  Not fully understanding
 things and reading the commit message to be saying that this was an
 optimization, I implemented my hardware transactional memory support
 without the write barrier (avoiding the extra work inside a
 transaction).  This resulted in occasional crashes where a TVar which
 was point to a valid heap object when it was committed, pointed to
 garbage later.  My understanding was that the TVar ended up in a later
 generation then the value that it came to point to and without getting
 added to the mut list, the value was collected.  Adding the write
 barrier to all TVars written in my hardware transaction made the problem
 go away.

 While this all makes sense to me, what doesn't make as much sense is how
 STM prior to the commit above was not susceptible to the same problem.
   Is there some machinery to avoid this issue that I'm still missing?


 Sorry for the delay, I'm just catching up with this mailing list.

 Prior to this commit, the garbage collector would treat *all* TVars in the
 old generation as potentially modified, and traverse them all during every
 GC.  This is expensive when there are a lot of TVars, which meant that
 TVar-based data structures such as TChan would perform very badly with a
 large number of elements.  The fix is to track writes to TVars in the old
 generation, which is what that commit did.

 Cheers,
 Simon

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


Re: Daily documentation build?

2014-11-06 Thread Austin Seipp
I also wonder if it would be nice for Phabricator to upload
documentation/artifacts somewhere. Maybe I should implement this, for
the Continuous Integration builds on Phab.

The main thing is I don't want the build to get all spammy with a
million emails, like it did before. But maybe that's workaroundable.

On Thu, Nov 6, 2014 at 6:53 AM, Jan Stolarek jan.stola...@p.lodz.pl wrote:
  * it is slightly tricky to find it. Starting from
 https://ghc.haskell.org/trac/ghc/wiki/ I had to follow the “Guilde is
 also availble” link about daily builds, and then the link from the
 summary. Ok if one knows where to look, but hard to discover by itself.
 Yeah, I had the same problem in the past. That's why I added the link to 
 Infrastructure page (as
 you have already realized).

 Seems that the build bots are down. It would be good to have them working 
 again but fixing #9772
 would be even better.

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



-- 
Regards,

Austin Seipp, Haskell Consultant
Well-Typed LLP, http://www.well-typed.com/
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs