1. 07 Jun, 2016 13 commits
  2. 06 Jun, 2016 9 commits
    • Alan Zimmerman's avatar
      Merge MatchFixity and HsMatchContext · a13cb279
      Alan Zimmerman authored
      Summary:
      MatchFixity was introduced to facilitate use of API Annotations.
      
      HsMatchContext does the same thing with more detail, but is chased
      through all over the place to provide context when processing a Match.
      
      Since we already have MatchFixity in the Match, it may as well provide
      the full context.
      
      updates submodule haddock
      
      Test Plan: ./validate
      
      Reviewers: austin, goldfire, bgamari
      
      Subscribers: thomie, mpickering
      
      Differential Revision: https://phabricator.haskell.org/D2271
      
      GHC Trac Issues: #12105
      
      (cherry picked from commit 306ecad5)
      a13cb279
    • niteria's avatar
      Make UnitIdMap a deterministic map · 1937ef1c
      niteria authored
      This impacts at least the order in which version macros are
      generated. It's pretty hard to track what kind of nondeterminism
      is benign and this should have no performance impact as the number
      of packages should be relatively small.
      
      Test Plan: ./validate
      
      Reviewers: simonmar, austin, bgamari, ezyang
      
      Reviewed By: ezyang
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2308
      
      GHC Trac Issues: #4012
      1937ef1c
    • niteria's avatar
      Kill foldUniqSet · 3e7a876a
      niteria authored
      I planned to just say that we don't care about this part.
      Turns out I was able to document away the uses in the codegenerator.
      
      Test Plan: ./validate
      
      Reviewers: simonmar, austin, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2307
      
      GHC Trac Issues: #4012
      3e7a876a
    • niteria's avatar
      Document putDictionary determinism · 46d2da00
      niteria authored
      Summary: Like explained in the comment it's OK here.
      
      Test Plan: ./validate
      
      Reviewers: simonmar, austin, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2306
      
      GHC Trac Issues: #4012
      46d2da00
    • niteria's avatar
      Kill nameSetElems · 31ba8d64
      niteria authored
      nameSetElems used `eltsUFM` which is nondeterministic.
      
      Test Plan: ./validate
      
      Reviewers: simonmar, austin, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2305
      
      GHC Trac Issues: #4012
      31ba8d64
    • niteria's avatar
      Desugar ApplicativeDo and RecDo deterministically · e684f546
      niteria authored
      This fixes a problem described in
      Note [Deterministic ApplicativeDo and RecursiveDo desugaring].
      
      Test Plan: ./validate + new testcase
      
      Reviewers: simonpj, bgamari, austin, simonmar
      
      Reviewed By: simonmar
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2287
      
      GHC Trac Issues: #4012
      e684f546
    • seraphime's avatar
      Add @since annotations to base instances · a90085bd
      seraphime authored
      Add @since annotations to instances in `base`.
      
      Test Plan:
       * ./validate  # some commets shouldn't break the build
       * review the annotations for absurdities.
      
      Reviewers: ekmett, goldfire, RyanGlScott, austin, hvr, bgamari
      
      Reviewed By: RyanGlScott, hvr, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2277
      
      GHC Trac Issues: #11767
      a90085bd
    • niteria's avatar
      Implement deterministic CallInfoSet · 48e9a1f5
      niteria authored
      We need CallInfoSet to be deterministic because it determines the
      order that the binds get generated.
      
      Currently it's not deterministic because it's keyed on
      `CallKey = [Maybe Type]` and `Ord CallKey` is implemented
      with `cmpType` which is nondeterministic.
      
      See Note [CallInfoSet determinism] for more details.
      
      Test Plan: ./validate
      
      Reviewers: simonpj, bgamari, austin, simonmar
      
      Reviewed By: simonmar
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2242
      
      GHC Trac Issues: #4012
      48e9a1f5
    • niteria's avatar
      Use UniqDFM for HomePackageTable · 3042a9d8
      niteria authored
      This isn't strictly necessary for deterministic ABIs.
      The results of eltsHpt are consumed in two ways:
      1) they determine the order of linking
      2) if you track the data flow all the family instances get put in
         FamInstEnvs, so the nondeterministic order is forgotten.
      3) same for VectInfo stuff
      4) same for Annotations
      
      The problem is that I haven't found a nice way to do 2. in
      a local way and 1. is nice to have if we went for deterministic
      object files. Besides these maps are keyed on ModuleNames so they
      should be small relative to other things and the overhead should
      be negligible.
      
      As a bonus we also get more specific names.
      
      Test Plan: ./validate
      
      Reviewers: bgamari, austin, hvr, ezyang, simonmar
      
      Reviewed By: simonmar
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2300
      
      GHC Trac Issues: #4012
      3042a9d8
  3. 05 Jun, 2016 4 commits
  4. 04 Jun, 2016 6 commits
  5. 03 Jun, 2016 8 commits
    • Tamar Christina's avatar
      Use useful names for Symbol Addr and Names in Linker.c · 079c1b8c
      Tamar Christina authored
      Replace `char*` and `void*` with `SymbolName` and `SymbolAddr` in
      `Linker.c`. Gives some useful information about what the variables are
      used for and also normalizes the types used in Mac, Linux and Windows
      
      Test Plan:
      ./validate on all platforms that use the runtime linker.
      
      For unix platforms please ensure `DYNAMIC_GHC_PROGRAMS=NO` is
       added to your validate file.
      
      This is a continuation from D2184
      
      Reviewers: austin, erikd, simonmar, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie, #ghc_windows_task_force
      
      Differential Revision: https://phabricator.haskell.org/D2250
      
      GHC Trac Issues: #11816
      079c1b8c
    • Tamar Christina's avatar
      Refactored SymbolInfo to lower memory usage in RTS · 37473722
      Tamar Christina authored
      Previously as part of #11223 a new struct `SymbolInfo` was introduced to
      keep track it the weak symbol status of a symbol.
      
      This structure also kept a copy of the calculated address of the symbol
      which turns out was useful in ignoring non-weak zero-valued symbols.
      
      The information was kept in an array so it means for every symbol two
      extra bytes were kept even though the vast majority of symbols are
      non-weak and non-zero valued.
      
      This changes the array into a sparse map keeping this information only
      for the symbols that are weak or zero-valued. This allows for a
      reduction in the amount of information needed to be kept while giving up
      a small (negligable) hit in performance as this information now has to
      be looked up in hashmaps.
      
      Test Plan: ./validate on all platforms that use the runtime linker.
      
      For unix platforms please ensure `DYNAMIC_GHC_PROGRAMS=NO` is added to
      your validate file.
      
      Reviewers: simonmar, austin, erikd, bgamari
      
      Reviewed By: simonmar, bgamari
      
      Subscribers: thomie, #ghc_windows_task_force
      
      Differential Revision: https://phabricator.haskell.org/D2184
      
      GHC Trac Issues: #11816
      37473722
    • Peter Trommler's avatar
      testsuite: Mark broken tests on powerpc64le · 1dadd9a9
      Peter Trommler authored
      Mark all failing tests that have a ticket for powerpc64 as broken. Most
      of these failures are due to the lack of linker support in the runtime
      system.
      
      Test Plan: validate on powerpc and AIX
      
      Reviewers: erikd, bgamari, simonmar, hvr, austin
      
      Reviewed By: austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2289
      
      GHC Trac Issues: #11261, #11259, #11260, #11323
      1dadd9a9
    • Ryan Scott's avatar
      Derive instances in Data.Data · 4842a805
      Ryan Scott authored
      Summary:
      Currently, none of the `Data` instances in `Data.Data` are derived,
      which has resulted in hundreds of lines of laboriously hand-written `Data`
      instances. This cleans it up by using `DeriveDataTypeable` to derive all of
      the boring instances.
      
      Note that previously, `tcTopSrcDecls` in `TcRnDriver` was typechecking the
      variables generated in `deriving` statements before other top-level variables,
      which causes an error when `DeriveDataTypeable` is used in `Data.Data`, since
      the `deriving`-generated variable definitions refer to top-level definitions
      in `Data.Data` itself. To fix this, the order in which these two groups are
      typechecked was reversed.
      
      Test Plan: ./validate
      
      Reviewers: rwbarton, bgamari, hvr, austin
      
      Reviewed By: austin
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D2291
      4842a805
    • niteria's avatar
      Document putSymbolTable determinism · 2046297e
      niteria authored
      Like explained in the comment it's OK here.
      
      Test Plan: ./validate
      
      Reviewers: bgamari, austin, simonmar
      
      Reviewed By: simonmar
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2298
      
      GHC Trac Issues: #4012
      2046297e
    • niteria's avatar
      Make FieldLabelEnv a deterministic set · 9cc6fac5
      niteria authored
      This lets us kill fsEnvElts function which is nondeterministic.
      We also get better guarantees than just comments.
      We don't do lookups, but I believe a set is needed for deduplication.
      
      Test Plan: ./validate
      
      Reviewers: bgamari, mpickering, austin, simonmar
      
      Reviewed By: simonmar
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D2297
      
      GHC Trac Issues: #4012
      9cc6fac5
    • Ömer Sinan Ağacan's avatar
      HscMain: Minor simplification · 1d1987e0
      Ömer Sinan Ağacan authored
      1d1987e0
    • Ömer Sinan Ağacan's avatar
      Whitespace only · 060c1763
      Ömer Sinan Ağacan authored
      060c1763