1. 11 Feb, 2015 1 commit
  2. 10 Feb, 2015 12 commits
    • Simon Peyton Jones's avatar
      1d982ba1
    • Simon Peyton Jones's avatar
      Add a couple of tcTraces around reify · 1e58ed87
      Simon Peyton Jones authored
      1e58ed87
    • Simon Peyton Jones's avatar
      More comments and white space · 12698ff4
      Simon Peyton Jones authored
      12698ff4
    • Simon Peyton Jones's avatar
      Comments only · 1e651b90
      Simon Peyton Jones authored
      1e651b90
    • Simon Peyton Jones's avatar
      Refactor the handling of quasi-quotes · f46360ed
      Simon Peyton Jones authored
      As Trac #10047 points out, a quasi-quotation [n|...blah...|] is supposed
      to behave exactly like $(n "...blah...").  But it doesn't!  This was outright
      wrong: quasiquotes were being run even inside brackets.
      
      Now that TH supports both typed and untyped splices, a quasi-quote is properly
      regarded as a particular syntax for an untyped splice. But apart from that
      they should be treated the same.  So this patch refactors the handling of
      quasiquotes to do just that.
      
      The changes touch quite a lot of files, but mostly in a routine way.
      The biggest changes by far are in RnSplice, and more minor changes in
      TcSplice.  These are the places where there was real work to be done.
      Everything else is routine knock-on changes.
      
      * No more QuasiQuote forms in declarations, expressions, types, etc.
        So we get rid of these data constructors
          * HsBinds.QuasiQuoteD
          * HsExpr.HsSpliceE
          * HsPat.QuasiQuotePat
          * HsType.HsQuasiQuoteTy
      
      * We get rid of the HsQuasiQuote type altogether
      
      * Instead, we augment the HsExpr.HsSplice type to have three
        consructors, for the three types of splice:
          * HsTypedSplice
          * HsUntypedSplice
          * HsQuasiQuote
        There are some related changes in the data types in HsExpr near HsSplice.
        Specifically: PendingRnSplice, PendingTcSplice, UntypedSpliceFlavour.
      
      * In Hooks, we combine rnQuasiQuoteHook and rnRnSpliceHook into one.
        A smaller, clearer interface.
      
      * We have to update the Haddock submodule, to accommodate the hsSyn changes
      f46360ed
    • Rufflewind's avatar
      Don't overwrite input file by default · 78833ca6
      Rufflewind authored
      Summary:
      If the default filename of the output executable coincides with that of main
      source file, throw an error instead of silently clobbering the input file.
      
      Reviewers: austin
      
      Reviewed By: austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D642
      
      GHC Trac Issues: #9930
      78833ca6
    • Ben Gamari's avatar
      llvmGen: move to LLVM 3.6 exclusively · 5d5abdca
      Ben Gamari authored
      Summary:
      Rework llvmGen to use LLVM 3.6 exclusively. The plans for the 7.12 release are to ship LLVM alongside GHC in the interests of user (and developer) sanity.
      
      Along the way, refactor TNTC support to take advantage of the new `prefix` data support in LLVM 3.6. This allows us to drop the section-reordering component of the LLVM mangler.
      
      Test Plan: Validate, look at emitted code
      
      Reviewers: dterei, austin, scpmw
      
      Reviewed By: austin
      
      Subscribers: erikd, awson, spacekitteh, thomie, carter
      
      Differential Revision: https://phabricator.haskell.org/D530
      
      GHC Trac Issues: #10074
      5d5abdca
    • Edward Z. Yang's avatar
      Add Uniquable instances for InstalledPackageId/SourcePackageId/PackageName · d5a80dbe
      Edward Z. Yang authored
      Summary: Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
      
      Test Plan: validate
      
      Reviewers: austin
      
      Reviewed By: austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D633
      d5a80dbe
    • Duncan Coutts's avatar
      Add a workaround to allow older cabal-install to use ghc-7.10 · a1db53cc
      Duncan Coutts authored
      Summary:
      This should smooth the upgrade process for people and help with testing
      the 7.10 RCs. Otherwise people need to first install cabal-install-1.22
      before they can use 7.10.
      
      The problem is that older cabal still used file-style package dbs for
      the inplace package db when building packages. The workaround is that
      both ghc and ghc-pkg will notice when cabal tells them to use a file
      style db e.g. "dist/package.conf.inplace" and, so long as that db is
      empty (ie content is []) then they'll instead us a dir style db with
      the same name but ".d" appended, so in this example that would be
      "dist/package.conf.inplace.d". We have to use a separate dir rather
      than transparently upgrading because old Cabal really assumes the path
      is a file, and if it encounters a dir it will fail.
      
      This seems to be enough for older Cabal to work, and may well be enough
      for other scripts that create dbs using "echo [] > package.conf".
      
      Test Plan:
      validate and check new and old cabal can sucessfully install things,
      including packages that have internal deps (ie using the inplace db)
      
      Reviewers: hvr, tibbe, austin
      
      Reviewed By: tibbe, austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D628
      a1db53cc
    • Roman Cheplyaka's avatar
      Clarify the documentation for 'evaluate' · de9a836c
      Roman Cheplyaka authored
      Summary:
      See:
      
        https://www.haskell.org/pipermail/ghc-devs/2015-January/007900.html
        https://ghc.haskell.org/trac/ghc/ticket/5129#comment:17
      
      Reviewers: hvr, Mikolaj, austin
      
      Reviewed By: Mikolaj, austin
      
      Subscribers: ezyang, nomeata, thomie
      
      Differential Revision: https://phabricator.haskell.org/D615
      de9a836c
    • thomie's avatar
      Remove deprecated libraries/base/include/Typeable.h · e22282e5
      thomie authored
      Test Plan: I grepped for other references, there were none.
      
      Reviewers: ekmett, hvr, austin
      
      Reviewed By: austin
      
      Subscribers: ekmett, thomie, carter
      
      Differential Revision: https://phabricator.haskell.org/D483
      e22282e5
    • rodlogic's avatar
      Replace .lhs with .hs in compiler comments · 83efb985
      rodlogic authored
      Summary: It looks like during .lhs -> .hs switch the comments were not updated. So doing exactly that.
      
      Reviewers: austin, jstolarek, hvr, goldfire
      
      Reviewed By: austin, jstolarek
      
      Subscribers: thomie, goldfire
      
      Differential Revision: https://phabricator.haskell.org/D621
      
      GHC Trac Issues: #9986
      83efb985
  3. 09 Feb, 2015 1 commit
    • Herbert Valerio Riedel's avatar
      Provide default implementation of `Monad(return)` · a741e69a
      Herbert Valerio Riedel authored
      This was dropped last-minute from d94de872
      (re #4834) together with the default implementation for `(>>)`
      (see 65f887e1 for explanation).
      
      However, the risk of accidental mutually recursive definitions of
      `return`/`pure` is rather low as unlike with the `(>>) = (*>)` default,
      any cyclic definitions would necessarily wind up being new ones, rather
      than changing the semantics for old operations and introducing bottoms.
      
      On the other hand, not having the default method implementation in place
      in GHC 7.10 would complicate/delay any future attempt to clean-up the
      `Monad`-class.
      
      This finally allows (for `base >= 4.8`) to define a F/A/M instance-chain
      with the following minimal definitions (while ignoring that `return` is
      still a class-method in `Monad`)
      
        instance Functor M where
          fmap  = ...
      
        instance Applicative M where
          pure  = ...
          (<*>) = ...
      
        instance Monad M where
          (>>=) = ...
      
      Reviewed By: ekmett, austin
      
      Differential Revision: https://phabricator.haskell.org/D647
      a741e69a
  4. 06 Feb, 2015 7 commits
  5. 05 Feb, 2015 6 commits
  6. 04 Feb, 2015 1 commit
    • Simon Marlow's avatar
      Fix a profiling bug · daed18c3
      Simon Marlow authored
      Summary:
      We were erroneously discarding SCCs on function-typed variables.
      These can affect the call stack, so we have to retain them.  The bug
      was introduced during the recent SourceNote refactoring.
      
      This is an alternative to the fix proposed in D616.  I also added the
      scc005 test from that diff, which works with this change.
      
      While I was here, I also fixed up the other profiling tests, marking a
      few as expect_broken_for(10037) where the opt/unopt output differs in
      non-fatal ways.
      
      Test Plan: profiling tests
      
      Reviewers: scpmw, ezyang, austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D636
      
      GHC Trac Issues: #10007
      daed18c3
  7. 02 Feb, 2015 1 commit
    • AndreasVoellmy's avatar
      Fix #10017 · 92c93544
      AndreasVoellmy authored
      Summary:
      In the threaded RTS, a signal is delivered from the RTS to Haskell
      user code by writing to file that one of the IO managers watches (via
      an instance of GHC.Event.Control.Control). When the IO manager
      receives the signal, it calls GHC.Conc.Signal.runHandlers to invoke
      Haskell signal handler. In the move from a single IO manager to one IO
      manager per capability, the behavior was (wrongly) extended so that a
      signal is delivered to every event manager (see #9423), each of which
      invoke Haskell signal handlers, leading to multiple invocations of
      Haskell signal handlers for a single signal. This change fixes this
      problem by having the RTS (in generic_handler()) notify only the
      Control instance used by the TimerManager, rather than all the
      per-capability IO managers.
      
      Reviewers: austin, hvr, simonmar, Mikolaj
      
      Reviewed By: simonmar, Mikolaj
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D641
      92c93544
  8. 28 Jan, 2015 3 commits
  9. 27 Jan, 2015 2 commits
  10. 26 Jan, 2015 1 commit
  11. 23 Jan, 2015 3 commits
    • David Feuer's avatar
      Revert zipWith strictification (re #9949) · f44bbc83
      David Feuer authored
      Also remove foldr2/right rule to avoid possibly introducing
      bottoms with rules.
      
      This effectively reverts most of 488e95b4
      
      Reviewed By: nomeata
      
      Differential Revision: https://phabricator.haskell.org/D602
      f44bbc83
    • Herbert Valerio Riedel's avatar
      Revert "Update Haddock submodule" · febee92c
      Herbert Valerio Riedel authored
      This reverts commit 34d68d8e
      as it breaks the build:
      
        Configuring hsc2hs-0.67...
        Configuring ghc-cabal-0.1...
        Configuring parallel-3.2.0.6...
        Configuring hpc-bin-0.67...
        Configuring haddock-2.16.0...
        ghc-cabal: At least the following dependencies are missing:
        ghc >=7.9 && <7.11
        make[1]: *** [utils/haddock/dist/package-data.mk] Error 1
        make[1]: *** Waiting for unfinished jobs....
          GHC PKG libraries/parallel/dist-install/package-data.mk
        Reading package info from "libraries/parallel/dist-install/inplace-pkg-config" ... done.
        parallel-3.2.0.6: Warning: haddock-interfaces: /srv/builds/commits/rGHC/B3035-34d68d8e/libraries/parallel/dist-install/doc/html/parallel/parallel.haddock doesn't exist or isn't a file
        parallel-3.2.0.6: cannot find any of ["Control/Seq.hi","Control/Seq.p_hi","Control/Seq.dyn_hi"] (ignoring)
        parallel-3.2.0.6: cannot find any of ["Control/Parallel.hi","Control/Parallel.p_hi","Control/Parallel.dyn_hi"] (ignoring)
        parallel-3.2.0.6: cannot find any of ["Control/Parallel/Strategies.hi","Control/Parallel/Strategies.p_hi","Control/Parallel/Strategies.dyn_hi"] (ignoring)
        parallel-3.2.0.6: cannot find any of ["libHSparal_791B1zx5CJ25cUOFECtmw0.a","libHSparal_791B1zx5CJ25cUOFECtmw0.p_a","libHSparal_791B1zx5CJ25cUOFECtmw0-ghc7.11.20150123.so","libHSparal_791B1zx5CJ25cUOFECtmw0-ghc7.11.20150123.dylib","HSparal_791B1zx5CJ25cUOFECtmw0-ghc7.11.20150123.dll"] on library path (ignoring)
        make: *** [all] Error 2
      
      Moreover, utils/haddock is supposed to track the `ghc-head` branch
      (which is what `git submodule update --remote utils/haddock` helps with)
      febee92c
    • Mateusz Kowalczyk's avatar
      Update Haddock submodule · 34d68d8e
      Mateusz Kowalczyk authored
      34d68d8e
  12. 22 Jan, 2015 2 commits