packages feed

HaRe-0.8.4.0: HaRe.cabal

Name:                           HaRe
Version:                        0.8.4.0

Author:                         Chris Brown, Huiqing Li, Simon Thompson,
                                Alan Zimmerman, Stephen Adams
Maintainer:                     Alan Zimmerman (alan.zimm@gmail.com)
Stability:                      Alpha
Bug-Reports:                    http://github.com/RefactoringTools/HaRe/issues
License:                        BSD3
License-File:                   LICENSE
Homepage:                       https://github.com/RefactoringTools/HaRe/wiki
Description:
   A Haskell 2010 refactoring tool. HaRe supports the full
   Haskell 2010 standard, through making use of the GHC API.
   .
   Version 0.7.2.8 supports up to GHC 7.6.3.
   .
   There is no support for GHC 7.8.x. There will never be support for GHC 7.8.x
   .
   From version 0.8.0.0, GHC 7.10.2 is supported.
   .
   From version 0.8.3.0, GHC 8.0.1 is supported.
   .
   From version 0.8.4.0, GHC 8.0.2 is supported.
   .
   It is tested against GHC 7.10.3, GHC 8.0.1 and GHC 8.0.2 (via travis-ci.org)
   .
   It currently only has emacs integration built in, community input
   welcome for others.
   .
   HaRe attempts to operate in a safe way, by first writing new files with
   proposed changes, and only swapping these with the originals when the change
   is accepted. In the process the original file is renamed to have the current
   date/time as a suffix. Thus it should be possible to (manually) undo changes.
   .
   Even so, it is strongly advised to back up any source files before
   refactoring, as we can make no promises as to the reliability of this tool.
   Use at your own risk.
   .
   At the moment parsing of any file with FFI exports will fail.
   .
   See Language.Haskell.Refact.HaRe for the current list of refactorings supported
   .
Synopsis:                       the Haskell Refactorer.
Category:                       Development, Refactoring
Cabal-Version:                  >= 1.8
Build-Type:                     Simple

tested-with:                    GHC == 7.10.3, GHC == 8.0.1, GHC == 8.0.2

data-files:                     elisp/*.el
                                configure.sh
                                test/testdata/*.cabal
                                test/testdata/*.hs
                                test/testdata/AddOneParameter/*.hs
                                test/testdata/AddOneParameter/*.expected.hs
                                test/testdata/Case/*.hs
                                test/testdata/Case/*.hs.expected
                                test/testdata/Case/*.hs.expected.dd
                                test/testdata/Demote/*.expected.hs
                                test/testdata/Demote/*.hs
                                test/testdata/Demote/*.hs.expected
                                test/testdata/DupDef/*.hs
                                test/testdata/DupDef/*.hs.expected
                                test/testdata/DupDef/*.hs.expected.dd
                                test/testdata/DupDef/*.hs.expected.gg
                                test/testdata/DupDef/*.hs.expected.ll
                                test/testdata/DupDef/*.hs.expected.mm
                                test/testdata/DupDef/*.hs.expected.nn
                                test/testdata/FreeAndDeclared/*.hs
                                test/testdata/Layout/*.hs
                                test/testdata/Layout/*.hs.expected
                                test/testdata/LiftOneLevel/*.hs
                                test/testdata/LiftOneLevel/*.hs.expected
                                test/testdata/LiftToToplevel/*.expected.hs
                                test/testdata/LiftToToplevel/*.hs
                                test/testdata/LiftToToplevel/*.hs.expected
                                test/testdata/MoveDef/*.hs
                                test/testdata/MoveDef/*.hs.expected
                                test/testdata/Renaming/*.expected.hs
                                test/testdata/Renaming/*.hs
                                test/testdata/Renaming/*.hs.expected
                                test/testdata/RmOneParameter/*.expected.hs
                                test/testdata/RmOneParameter/*.hs
                                test/testdata/Simple/*.hs
                                test/testdata/Simple/*.hs.expected
                                test/testdata/SwapArgs/*.hs
                                test/testdata/TH/*.hs
                                test/testdata/TypeUtils/*.hs
                                test/testdata/Visible/*.hs
                                test/testdata/cabal/cabal1/*.cabal
                                test/testdata/cabal/cabal1/*.hs
                                test/testdata/cabal/cabal1/src/*.hs
                                test/testdata/cabal/cabal1/src/Foo/*.hs
                                test/testdata/cabal/cabal2/*.cabal
                                test/testdata/cabal/cabal2/*.hs
                                test/testdata/cabal/cabal2/src/*.hs
                                test/testdata/cabal/cabal2/src/Foo/*.hs
                                test/testdata/cabal/cabal3/*.cabal
                                test/testdata/cabal/cabal3/*.hs
                                test/testdata/cabal/cabal3/src/*.hs
                                test/testdata/cabal/cabal3/src/Foo/*.hs
                                test/testdata/cabal/cabal4/*.cabal
                                test/testdata/cabal/cabal4/*.hs
                                test/testdata/cabal/cabal4/src/*.expected.hs
                                test/testdata/cabal/cabal4/src/*.hs
                                test/testdata/cabal/cabal4/src/Foo/*.expected.hs
                                test/testdata/cabal/cabal4/src/Foo/*.hs
                                test/testdata/cabal/foo/*.cabal
                                test/testdata/cabal/foo/*.hs
                                test/testdata/cabal/foo/src/*.expected.hs
                                test/testdata/cabal/foo/src/*.hs
                                test/testdata/cabal/foo/src/Foo/*.expected.hs
                                test/testdata/cabal/foo/src/Foo/*.hs

data-Dir:                       .
extra-source-files:             ChangeLog

Library
        -- GHC 7.10.2 ships with base 4.8.1.0
        Build-Depends:          base >= 4.8.1.0  && < 5
                               , Strafunski-StrategyLib
                               , cabal-helper
                               , containers
                               , directory
                               , filepath
                               , ghc
                               , ghc-exactprint == 0.5.3.*
                               , ghc-mod == 5.7.0.*
                               , ghc-syb-utils
                               , hslogger
                               , monad-control
                               , mtl
                               , syb
                               , syz

        -- optimisation disabled otherwise the compile takes too long
        -- With normal optimisation, we get
        -- $ rm -fr dist-newstyle/
        -- $ cabal new-configure --enable-test
        -- $ time cabal new-build
        -- real	6m54.778s
        -- user	7m3.156s
        -- sys	0m4.504s
        -- With -O0, the timing is
        -- real	0m36.427s
        -- user 0m41.448s
        -- sys 0m2.544s
        GHC-Options:            -O0
        Hs-Source-Dirs:         src
        -- Other-Modules:          Paths_HaRe
        Exposed-modules:
             Language.Haskell.Refact.API
           , Language.Haskell.Refact.HaRe
           , Language.Haskell.Refact.Refactoring.AddRmParam
           , Language.Haskell.Refact.Refactoring.Case
           , Language.Haskell.Refact.Refactoring.DupDef
           , Language.Haskell.Refact.Refactoring.MoveDef
           , Language.Haskell.Refact.Refactoring.Renaming
           , Language.Haskell.Refact.Refactoring.RoundTrip
           , Language.Haskell.Refact.Refactoring.Simple
           , Language.Haskell.Refact.Refactoring.SwapArgs
           , Language.Haskell.Refact.Refactoring.DeleteDef
--           , Language.Haskell.Refact.Refactoring.IntroduceTypeSyn
--           , Language.Haskell.Refact.Refactoring.UnwrapTypeSyn
           , Language.Haskell.Refact.Refactoring.GenApplicative
           , Language.Haskell.Refact.Utils.ExactPrint
           , Language.Haskell.Refact.Utils.GhcBugWorkArounds
           , Language.Haskell.Refact.Utils.GhcModuleGraph
           , Language.Haskell.Refact.Utils.GhcUtils
           , Language.Haskell.Refact.Utils.GhcVersionSpecific
           , Language.Haskell.Refact.Utils.LocUtils
           , Language.Haskell.Refact.Utils.Monad
           , Language.Haskell.Refact.Utils.MonadFunctions
           , Language.Haskell.Refact.Utils.TypeSyn
           , Language.Haskell.Refact.Utils.TypeUtils
           , Language.Haskell.Refact.Utils.Types
           , Language.Haskell.Refact.Utils.Utils
           , Language.Haskell.Refact.Utils.Variables
           , Language.Haskell.Refact.Utils.Synonyms
           , Language.Haskell.Refact.Utils.Transform
           , Language.Haskell.Refact.Utils.Query
           , Paths_HaRe
        if impl (ghc < 7.10.2)
            buildable: False


Executable ghc-hare
        Main-Is:                MainHaRe.hs
        -- Other-Modules:          Paths_HaRe
        GHC-Options:            -O0
        -- GHC-Options:            -prof -fprof-auto -rtsopts -caf-all
        Hs-Source-Dirs:
          ./app

        -- GHC 7.10.2 ships with base 4.8.1.0
        Build-Depends:          base >= 4.8.1.0  && < 5
                                , ghc-mod
                                , gitrev >= 1.1
                                , mtl
                                , optparse-applicative
                                , optparse-simple
                                , Cabal
                                -- , Paths_HaRe
                                , HaRe
        Extensions:      CPP
        if impl (ghc < 7.10.2)
            buildable: False

test-suite spec
  type:
      exitcode-stdio-1.0
  ghc-options:
      -O0
      -- reinstate these later  -Wall
      -- -Wall
      -- reinstate these later  -Werror
      -- -fhpc
      -- -fhpc -hpcdir dist/hpc/app-1.0
  cpp-options:
      -DTEST
  main-is:
      Main.hs
  Hs-Source-Dirs:
    -- src
    test
  other-modules:
      AddRmParamSpec
    , CaseSpec
    , DupDefSpec
    , GhcUtilsSpec
    , LocUtilsSpec
    , MonadFunctionsSpec
    , MoveDefSpec
    , RenamingSpec
    , RoundTripSpec
    , SimpleSpec
    , SwapArgsSpec
    , TestUtils
    , TypeUtilsSpec
    , UtilsSpec
    , DeleteDefSpec
--    , IntroduceTypeSynSpec
--    , UnwrapTypeSynSpec

    -- , Language.Haskell.Refact.API
    -- , Language.Haskell.Refact.HaRe
    -- , Language.Haskell.Refact.Refactoring.AddRmParam
    -- , Language.Haskell.Refact.Refactoring.Case
    -- , Language.Haskell.Refact.Refactoring.RoundTrip
    -- , Language.Haskell.Refact.Utils.ExactPrint
    -- , Language.Haskell.Refact.Utils.GhcModuleGraph
    -- , Language.Haskell.Refact.Utils.GhcUtils
    -- , Language.Haskell.Refact.Utils.GhcVersionSpecific
    -- , Language.Haskell.Refact.Utils.LocUtils
    -- , Language.Haskell.Refact.Utils.Monad
    -- , Language.Haskell.Refact.Utils.MonadFunctions
    -- , Language.Haskell.Refact.Utils.TypeSyn
    -- , Language.Haskell.Refact.Utils.TypeUtils
    -- , Language.Haskell.Refact.Utils.Types
    -- , Language.Haskell.Refact.Utils.Utils
    -- , Language.Haskell.Refact.Utils.Variables
    -- , Paths_HaRe
  build-depends:
      -- GHC 7.10.2 ships with base 4.8.1.0
      base        >= 4.8.1.0  && < 5
    , Diff >= 0.3.0
    , HUnit
    , containers
    , directory
    , foldl
    , ghc
    , ghc-exactprint == 0.5.3.*
    , ghc-mod == 5.7.0.*
    , ghc-syb-utils
    , hslogger
    , hspec
    , mtl
    , turtle >= 1.3.0
    , foldl
    -- , Paths_HaRe
    , attoparsec
    , base-prelude
    , conversion-case-insensitive
    , conversion
    , conversion-text
    , parsec
    , case-insensitive
    , HaRe >= 0.8.2.1
  Extensions:      CPP
  if impl (ghc < 7.10.2)
    buildable: False

-- test-suite doctests
--   type:          exitcode-stdio-1.0
--   ghc-options:   -threaded
--   main-is:       doctests.hs
--   build-depends: base        >= 4.0  && < 4.9
--                , doctest >= 0.8
--                , ghc-mod
--   Hs-Source-Dirs:
--     -- src
--     test


source-repository head
  type:     git
  location: https://github.com/RefactoringTools/HaRe.git