Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,841
    • Issues 4,841
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 454
    • Merge requests 454
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #20780

Closed
Open
Created Dec 04, 2021 by Ryan Scott@RyanGlScottMaintainer

Ctrl-C loses module loading progress in GHCi HEAD

In GHC 9.2 and older, if you load several modules into GHCi and hit Ctrl-C, you can resume later by invoking :reload. For instance, here is an example of doing so when loading base-compat-0.12.1 into GHCi 9.2.1:

$ cabal get base-compat-0.12.1 && cd base-compat-0.12.1/
$ cabal repl -w ghc-9.2
Build profile: -w ghc-9.2.1 -O1
In order, the following will be built (use -v for more details):
 - base-compat-0.12.1 (lib) (first run)
Preprocessing library for base-compat-0.12.1..
GHCi, version 9.2.1: https://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /home/ryanglscott/.ghci
[  1 of 122] Compiling Control.Concurrent.Compat ( src/Control/Concurrent/Compat.hs, interpreted )
[  2 of 122] Compiling Control.Concurrent.Compat.Repl ( src/Control/Concurrent/Compat/Repl.hs, interpreted )
[  3 of 122] Compiling Control.Concurrent.MVar.Compat ( src/Control/Concurrent/MVar/Compat.hs, interpreted )
[  4 of 122] Compiling Control.Concurrent.MVar.Compat.Repl ( src/Control/Concurrent/MVar/Compat/Repl.hs, interpreted )
[  5 of 122] Compiling Control.Exception.Compat ( src/Control/Exception/Compat.hs, interpreted )
[  6 of 122] Compiling Control.Exception.Compat.Repl ( src/Control/Exception/Compat/Repl.hs, interpreted )
[  7 of 122] Compiling Control.Monad.Compat ( src/Control/Monad/Compat.hs, interpreted )
[  8 of 122] Compiling Control.Monad.Compat.Repl ( src/Control/Monad/Compat/Repl.hs, interpreted )
[  9 of 122] Compiling Control.Monad.Fail.Compat ( src/Control/Monad/Fail/Compat.hs, interpreted )
[ 10 of 122] Compiling Control.Monad.Fail.Compat.Repl ( src/Control/Monad/Fail/Compat/Repl.hs, interpreted )
[ 11 of 122] Compiling Control.Monad.IO.Class.Compat ( src/Control/Monad/IO/Class/Compat.hs, interpreted )
[ 12 of 122] Compiling Control.Monad.IO.Class.Compat.Repl ( src/Control/Monad/IO/Class/Compat/Repl.hs, interpreted )
[ 13 of 122] Compiling Control.Monad.ST.Lazy.Unsafe.Compat ( src/Control/Monad/ST/Lazy/Unsafe/Compat.hs, interpreted )
[ 14 of 122] Compiling Control.Monad.ST.Lazy.Unsafe.Compat.Repl ( src/Control/Monad/ST/Lazy/Unsafe/Compat/Repl.hs, interpreted )
[ 15 of 122] Compiling Control.Monad.ST.Unsafe.Compat ( src/Control/Monad/ST/Unsafe/Compat.hs, interpreted )
[ 16 of 122] Compiling Control.Monad.ST.Unsafe.Compat.Repl ( src/Control/Monad/ST/Unsafe/Compat/Repl.hs, interpreted )
[ 17 of 122] Compiling Data.Bifoldable.Compat ( src/Data/Bifoldable/Compat.hs, interpreted )
[ 18 of 122] Compiling Data.Bifoldable.Compat.Repl ( src/Data/Bifoldable/Compat/Repl.hs, interpreted )
[ 19 of 122] Compiling Data.Bifunctor.Compat ( src/Data/Bifunctor/Compat.hs, interpreted )
[ 20 of 122] Compiling Data.Bifunctor.Compat.Repl ( src/Data/Bifunctor/Compat/Repl.hs, interpreted )
[ 21 of 122] Compiling Data.Bitraversable.Compat ( src/Data/Bitraversable/Compat.hs, interpreted )
[ 22 of 122] Compiling Data.Bitraversable.Compat.Repl ( src/Data/Bitraversable/Compat/Repl.hs, interpreted )
[ 23 of 122] Compiling Data.Bits.Compat ( src/Data/Bits/Compat.hs, interpreted )
[ 24 of 122] Compiling Data.Bits.Compat.Repl ( src/Data/Bits/Compat/Repl.hs, interpreted )
[ 25 of 122] Compiling Data.Bool.Compat ( src/Data/Bool/Compat.hs, interpreted )
[ 26 of 122] Compiling Data.Bool.Compat.Repl ( src/Data/Bool/Compat/Repl.hs, interpreted )
[ 27 of 122] Compiling Data.Complex.Compat ( src/Data/Complex/Compat.hs, interpreted )
[ 28 of 122] Compiling Data.Complex.Compat.Repl ( src/Data/Complex/Compat/Repl.hs, interpreted )
[ 29 of 122] Compiling Data.Either.Compat ( src/Data/Either/Compat.hs, interpreted )
[ 30 of 122] Compiling Data.Either.Compat.Repl ( src/Data/Either/Compat/Repl.hs, interpreted )
[ 31 of 122] Compiling Data.Foldable.Compat ( src/Data/Foldable/Compat.hs, interpreted )
[ 32 of 122] Compiling Data.Foldable.Compat.Repl ( src/Data/Foldable/Compat/Repl.hs, interpreted )
[ 33 of 122] Compiling Data.Function.Compat ( src/Data/Function/Compat.hs, interpreted )
[ 34 of 122] Compiling Data.Function.Compat.Repl ( src/Data/Function/Compat/Repl.hs, interpreted )
[ 35 of 122] Compiling Data.Functor.Compat ( src/Data/Functor/Compat.hs, interpreted )
[ 36 of 122] Compiling Data.Functor.Compat.Repl ( src/Data/Functor/Compat/Repl.hs, interpreted )
[ 37 of 122] Compiling Data.Functor.Compose.Compat ( src/Data/Functor/Compose/Compat.hs, interpreted )
[ 38 of 122] Compiling Data.Functor.Compose.Compat.Repl ( src/Data/Functor/Compose/Compat/Repl.hs, interpreted )
[ 39 of 122] Compiling Data.Functor.Const.Compat ( src/Data/Functor/Const/Compat.hs, interpreted )
[ 40 of 122] Compiling Data.Functor.Const.Compat.Repl ( src/Data/Functor/Const/Compat/Repl.hs, interpreted )
[ 41 of 122] Compiling Data.Functor.Contravariant.Compat ( src/Data/Functor/Contravariant/Compat.hs, interpreted )
[ 42 of 122] Compiling Data.Functor.Contravariant.Compat.Repl ( src/Data/Functor/Contravariant/Compat/Repl.hs, interpreted )
[ 43 of 122] Compiling Data.Functor.Identity.Compat ( src/Data/Functor/Identity/Compat.hs, interpreted )
[ 44 of 122] Compiling Data.Functor.Identity.Compat.Repl ( src/Data/Functor/Identity/Compat/Repl.hs, interpreted )
[ 45 of 122] Compiling Data.Functor.Product.Compat ( src/Data/Functor/Product/Compat.hs, interpreted )
[ 46 of 122] Compiling Data.Functor.Product.Compat.Repl ( src/Data/Functor/Product/Compat/Repl.hs, interpreted )
[ 47 of 122] Compiling Data.Functor.Sum.Compat ( src/Data/Functor/Sum/Compat.hs, interpreted )
[ 48 of 122] Compiling Data.Functor.Sum.Compat.Repl ( src/Data/Functor/Sum/Compat/Repl.hs, interpreted )
[ 49 of 122] Compiling Data.IORef.Compat ( src/Data/IORef/Compat.hs, interpreted )
[ 50 of 122] Compiling Data.IORef.Compat.Repl ( src/Data/IORef/Compat/Repl.hs, interpreted )
[ 51 of 122] Compiling Data.List.Compat ( src/Data/List/Compat.hs, interpreted )
[ 52 of 122] Compiling Data.List.Compat.Repl ( src/Data/List/Compat/Repl.hs, interpreted )
[ 53 of 122] Compiling Data.List.NonEmpty.Compat ( src/Data/List/NonEmpty/Compat.hs, interpreted )
[ 54 of 122] Compiling Data.List.NonEmpty.Compat.Repl ( src/Data/List/NonEmpty/Compat/Repl.hs, interpreted )
[ 55 of 122] Compiling Data.Monoid.Compat ( src/Data/Monoid/Compat.hs, interpreted )
[ 56 of 122] Compiling Data.Monoid.Compat.Repl ( src/Data/Monoid/Compat/Repl.hs, interpreted )
[ 57 of 122] Compiling Data.Proxy.Compat ( src/Data/Proxy/Compat.hs, interpreted )
[ 58 of 122] Compiling Data.Proxy.Compat.Repl ( src/Data/Proxy/Compat/Repl.hs, interpreted )
[ 59 of 122] Compiling Data.Ratio.Compat ( src/Data/Ratio/Compat.hs, interpreted )
^CInterrupted.
λ> :reload
[ 59 of 122] Compiling Data.Ratio.Compat ( src/Data/Ratio/Compat.hs, interpreted )
[ 60 of 122] Compiling Data.Ratio.Compat.Repl ( src/Data/Ratio/Compat/Repl.hs, interpreted )
[ 61 of 122] Compiling Data.STRef.Compat ( src/Data/STRef/Compat.hs, interpreted )
[ 62 of 122] Compiling Data.STRef.Compat.Repl ( src/Data/STRef/Compat/Repl.hs, interpreted )
[ 63 of 122] Compiling Data.Semigroup.Compat ( src/Data/Semigroup/Compat.hs, interpreted )
[ 64 of 122] Compiling Data.Semigroup.Compat.Repl ( src/Data/Semigroup/Compat/Repl.hs, interpreted )
[ 65 of 122] Compiling Data.String.Compat ( src/Data/String/Compat.hs, interpreted )
[ 66 of 122] Compiling Data.String.Compat.Repl ( src/Data/String/Compat/Repl.hs, interpreted )
[ 67 of 122] Compiling Data.Tuple.Compat ( src/Data/Tuple/Compat.hs, interpreted )

src/Data/Tuple/Compat.hs:19:1: warning: [-Wunused-imports]
    The import of ‘GHC.Tuple’ is redundant
      except perhaps to import instances from ‘GHC.Tuple’
    To import instances alone, use: import GHC.Tuple()
   |
19 | import GHC.Tuple (Solo(..))
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ 68 of 122] Compiling Data.Tuple.Compat.Repl ( src/Data/Tuple/Compat/Repl.hs, interpreted )
[ 69 of 122] Compiling Data.Type.Coercion.Compat ( src/Data/Type/Coercion/Compat.hs, interpreted )
[ 70 of 122] Compiling Data.Type.Coercion.Compat.Repl ( src/Data/Type/Coercion/Compat/Repl.hs, interpreted )
[ 71 of 122] Compiling Data.Type.Equality.Compat ( src/Data/Type/Equality/Compat.hs, interpreted )
[ 72 of 122] Compiling Data.Type.Equality.Compat.Repl ( src/Data/Type/Equality/Compat/Repl.hs, interpreted )
[ 73 of 122] Compiling Data.Version.Compat ( src/Data/Version/Compat.hs, interpreted )
[ 74 of 122] Compiling Data.Version.Compat.Repl ( src/Data/Version/Compat/Repl.hs, interpreted )
[ 75 of 122] Compiling Data.Void.Compat ( src/Data/Void/Compat.hs, interpreted )
[ 76 of 122] Compiling Data.Void.Compat.Repl ( src/Data/Void/Compat/Repl.hs, interpreted )
[ 77 of 122] Compiling Data.Word.Compat ( src/Data/Word/Compat.hs, interpreted )
[ 78 of 122] Compiling Data.Word.Compat.Repl ( src/Data/Word/Compat/Repl.hs, interpreted )
[ 79 of 122] Compiling Debug.Trace.Compat ( src/Debug/Trace/Compat.hs, interpreted )
[ 80 of 122] Compiling Debug.Trace.Compat.Repl ( src/Debug/Trace/Compat/Repl.hs, interpreted )
[ 81 of 122] Compiling Foreign.ForeignPtr.Compat ( src/Foreign/ForeignPtr/Compat.hs, interpreted )
[ 82 of 122] Compiling Foreign.ForeignPtr.Compat.Repl ( src/Foreign/ForeignPtr/Compat/Repl.hs, interpreted )
[ 83 of 122] Compiling Foreign.ForeignPtr.Safe.Compat ( src/Foreign/ForeignPtr/Safe/Compat.hs, interpreted )
[ 84 of 122] Compiling Foreign.ForeignPtr.Safe.Compat.Repl ( src/Foreign/ForeignPtr/Safe/Compat/Repl.hs, interpreted )
[ 85 of 122] Compiling Foreign.ForeignPtr.Unsafe.Compat ( src/Foreign/ForeignPtr/Unsafe/Compat.hs, interpreted )
[ 86 of 122] Compiling Foreign.ForeignPtr.Unsafe.Compat.Repl ( src/Foreign/ForeignPtr/Unsafe/Compat/Repl.hs, interpreted )
[ 87 of 122] Compiling Foreign.Marshal.Alloc.Compat ( src/Foreign/Marshal/Alloc/Compat.hs, interpreted )
[ 88 of 122] Compiling Foreign.Marshal.Alloc.Compat.Repl ( src/Foreign/Marshal/Alloc/Compat/Repl.hs, interpreted )
[ 89 of 122] Compiling Foreign.Marshal.Array.Compat ( src/Foreign/Marshal/Array/Compat.hs, interpreted )
[ 90 of 122] Compiling Foreign.Marshal.Array.Compat.Repl ( src/Foreign/Marshal/Array/Compat/Repl.hs, interpreted )
[ 91 of 122] Compiling Foreign.Marshal.Safe.Compat ( src/Foreign/Marshal/Safe/Compat.hs, interpreted )
[ 92 of 122] Compiling Foreign.Marshal.Safe.Compat.Repl ( src/Foreign/Marshal/Safe/Compat/Repl.hs, interpreted )
[ 93 of 122] Compiling Foreign.Marshal.Unsafe.Compat ( src/Foreign/Marshal/Unsafe/Compat.hs, interpreted )
[ 94 of 122] Compiling Foreign.Marshal.Unsafe.Compat.Repl ( src/Foreign/Marshal/Unsafe/Compat/Repl.hs, interpreted )
[ 95 of 122] Compiling Foreign.Marshal.Utils.Compat ( src/Foreign/Marshal/Utils/Compat.hs, interpreted )
[ 96 of 122] Compiling Foreign.Marshal.Compat ( src/Foreign/Marshal/Compat.hs, interpreted )
[ 97 of 122] Compiling Foreign.Marshal.Compat.Repl ( src/Foreign/Marshal/Compat/Repl.hs, interpreted )
[ 98 of 122] Compiling Foreign.Compat   ( src/Foreign/Compat.hs, interpreted )
[ 99 of 122] Compiling Foreign.Compat.Repl ( src/Foreign/Compat/Repl.hs, interpreted )
[100 of 122] Compiling Foreign.Marshal.Utils.Compat.Repl ( src/Foreign/Marshal/Utils/Compat/Repl.hs, interpreted )
[101 of 122] Compiling Numeric.Compat   ( src/Numeric/Compat.hs, interpreted )
[102 of 122] Compiling Numeric.Compat.Repl ( src/Numeric/Compat/Repl.hs, interpreted )
[103 of 122] Compiling Numeric.Natural.Compat ( src/Numeric/Natural/Compat.hs, interpreted )
[104 of 122] Compiling Numeric.Natural.Compat.Repl ( src/Numeric/Natural/Compat/Repl.hs, interpreted )
[105 of 122] Compiling Prelude.Compat   ( src/Prelude/Compat.hs, interpreted )
[106 of 122] Compiling Prelude.Compat.Repl ( src/Prelude/Compat/Repl.hs, interpreted )
[107 of 122] Compiling System.Environment.Compat ( src/System/Environment/Compat.hs, interpreted )
[108 of 122] Compiling System.Environment.Compat.Repl ( src/System/Environment/Compat/Repl.hs, interpreted )
[109 of 122] Compiling System.Exit.Compat ( src/System/Exit/Compat.hs, interpreted )
[110 of 122] Compiling System.Exit.Compat.Repl ( src/System/Exit/Compat/Repl.hs, interpreted )
[111 of 122] Compiling System.IO.Compat ( src/System/IO/Compat.hs, interpreted )
[112 of 122] Compiling System.IO.Compat.Repl ( src/System/IO/Compat/Repl.hs, interpreted )
[113 of 122] Compiling System.IO.Error.Compat ( src/System/IO/Error/Compat.hs, interpreted )
[114 of 122] Compiling System.IO.Error.Compat.Repl ( src/System/IO/Error/Compat/Repl.hs, interpreted )
[115 of 122] Compiling System.IO.Unsafe.Compat ( src/System/IO/Unsafe/Compat.hs, interpreted )
[116 of 122] Compiling System.IO.Unsafe.Compat.Repl ( src/System/IO/Unsafe/Compat/Repl.hs, interpreted )
[117 of 122] Compiling Text.Read.Compat ( src/Text/Read/Compat.hs, interpreted )
[118 of 122] Compiling Text.Read.Compat.Repl ( src/Text/Read/Compat/Repl.hs, interpreted )
[119 of 122] Compiling Text.Read.Lex.Compat ( src/Text/Read/Lex/Compat.hs, interpreted )
[120 of 122] Compiling Text.Read.Lex.Compat.Repl ( src/Text/Read/Lex/Compat/Repl.hs, interpreted )
[121 of 122] Compiling Type.Reflection.Compat ( src/Type/Reflection/Compat.hs, interpreted )
[122 of 122] Compiling Type.Reflection.Compat.Repl ( src/Type/Reflection/Compat/Repl.hs, interpreted )
Ok, 122 modules loaded.

Notice that before the ^CInterrupted., 58 modules had loaded. After running :reload, GHCi picks up where it left of at module 59, as expected.

In GHC HEAD, however, this is not the case. Ctrl-C'ing before every module loads means that GHCi will have to reload every single module when one :reloads. Let's see how GHCi HEAD compares when loading base-compat-0.12.1:

$ cabal repl -w ~/Software/ghc-9.3.20211203/bin/ghc
Resolving dependencies...
Build profile: -w ghc-9.3.20211203 -O1
In order, the following will be built (use -v for more details):
 - base-compat-0.12.1 (lib) (first run)
Preprocessing library for base-compat-0.12.1..
GHCi, version 9.3.20211203: https://www.haskell.org/ghc/  :? for help
Loaded GHCi configuration from /home/ryanglscott/.ghci
[  1 of 122] Compiling Control.Concurrent.Compat ( src/Control/Concurrent/Compat.hs, interpreted )
[  2 of 122] Compiling Control.Concurrent.Compat.Repl ( src/Control/Concurrent/Compat/Repl.hs, interpreted )
[  3 of 122] Compiling Control.Concurrent.MVar.Compat ( src/Control/Concurrent/MVar/Compat.hs, interpreted )
[  4 of 122] Compiling Control.Concurrent.MVar.Compat.Repl ( src/Control/Concurrent/MVar/Compat/Repl.hs, interpreted )
[  5 of 122] Compiling Control.Exception.Compat ( src/Control/Exception/Compat.hs, interpreted )
[  6 of 122] Compiling Control.Exception.Compat.Repl ( src/Control/Exception/Compat/Repl.hs, interpreted )
[  7 of 122] Compiling Control.Monad.Compat ( src/Control/Monad/Compat.hs, interpreted )
[  8 of 122] Compiling Control.Monad.Compat.Repl ( src/Control/Monad/Compat/Repl.hs, interpreted )
[  9 of 122] Compiling Control.Monad.Fail.Compat ( src/Control/Monad/Fail/Compat.hs, interpreted )
[ 10 of 122] Compiling Control.Monad.Fail.Compat.Repl ( src/Control/Monad/Fail/Compat/Repl.hs, interpreted )
[ 11 of 122] Compiling Control.Monad.IO.Class.Compat ( src/Control/Monad/IO/Class/Compat.hs, interpreted )
[ 12 of 122] Compiling Control.Monad.IO.Class.Compat.Repl ( src/Control/Monad/IO/Class/Compat/Repl.hs, interpreted )
[ 13 of 122] Compiling Control.Monad.ST.Lazy.Unsafe.Compat ( src/Control/Monad/ST/Lazy/Unsafe/Compat.hs, interpreted )
[ 14 of 122] Compiling Control.Monad.ST.Lazy.Unsafe.Compat.Repl ( src/Control/Monad/ST/Lazy/Unsafe/Compat/Repl.hs, interpreted )
[ 15 of 122] Compiling Control.Monad.ST.Unsafe.Compat ( src/Control/Monad/ST/Unsafe/Compat.hs, interpreted )
[ 16 of 122] Compiling Control.Monad.ST.Unsafe.Compat.Repl ( src/Control/Monad/ST/Unsafe/Compat/Repl.hs, interpreted )
[ 17 of 122] Compiling Data.Bifoldable.Compat ( src/Data/Bifoldable/Compat.hs, interpreted )
[ 18 of 122] Compiling Data.Bifoldable.Compat.Repl ( src/Data/Bifoldable/Compat/Repl.hs, interpreted )
[ 19 of 122] Compiling Data.Bifunctor.Compat ( src/Data/Bifunctor/Compat.hs, interpreted )
[ 20 of 122] Compiling Data.Bifunctor.Compat.Repl ( src/Data/Bifunctor/Compat/Repl.hs, interpreted )
[ 21 of 122] Compiling Data.Bitraversable.Compat ( src/Data/Bitraversable/Compat.hs, interpreted )
[ 22 of 122] Compiling Data.Bitraversable.Compat.Repl ( src/Data/Bitraversable/Compat/Repl.hs, interpreted )
[ 23 of 122] Compiling Data.Bits.Compat ( src/Data/Bits/Compat.hs, interpreted )
[ 24 of 122] Compiling Data.Bits.Compat.Repl ( src/Data/Bits/Compat/Repl.hs, interpreted )
[ 25 of 122] Compiling Data.Bool.Compat ( src/Data/Bool/Compat.hs, interpreted )
[ 26 of 122] Compiling Data.Bool.Compat.Repl ( src/Data/Bool/Compat/Repl.hs, interpreted )
[ 27 of 122] Compiling Data.Complex.Compat ( src/Data/Complex/Compat.hs, interpreted )
[ 28 of 122] Compiling Data.Complex.Compat.Repl ( src/Data/Complex/Compat/Repl.hs, interpreted )
[ 29 of 122] Compiling Data.Either.Compat ( src/Data/Either/Compat.hs, interpreted )
[ 30 of 122] Compiling Data.Either.Compat.Repl ( src/Data/Either/Compat/Repl.hs, interpreted )
[ 31 of 122] Compiling Data.Foldable.Compat ( src/Data/Foldable/Compat.hs, interpreted )
[ 32 of 122] Compiling Data.Foldable.Compat.Repl ( src/Data/Foldable/Compat/Repl.hs, interpreted )
[ 33 of 122] Compiling Data.Function.Compat ( src/Data/Function/Compat.hs, interpreted )
[ 34 of 122] Compiling Data.Function.Compat.Repl ( src/Data/Function/Compat/Repl.hs, interpreted )
[ 35 of 122] Compiling Data.Functor.Compat ( src/Data/Functor/Compat.hs, interpreted )
[ 36 of 122] Compiling Data.Functor.Compat.Repl ( src/Data/Functor/Compat/Repl.hs, interpreted )
[ 37 of 122] Compiling Data.Functor.Compose.Compat ( src/Data/Functor/Compose/Compat.hs, interpreted )
[ 38 of 122] Compiling Data.Functor.Compose.Compat.Repl ( src/Data/Functor/Compose/Compat/Repl.hs, interpreted )
[ 39 of 122] Compiling Data.Functor.Const.Compat ( src/Data/Functor/Const/Compat.hs, interpreted )
[ 40 of 122] Compiling Data.Functor.Const.Compat.Repl ( src/Data/Functor/Const/Compat/Repl.hs, interpreted )
[ 41 of 122] Compiling Data.Functor.Contravariant.Compat ( src/Data/Functor/Contravariant/Compat.hs, interpreted )
[ 42 of 122] Compiling Data.Functor.Contravariant.Compat.Repl ( src/Data/Functor/Contravariant/Compat/Repl.hs, interpreted )
[ 43 of 122] Compiling Data.Functor.Identity.Compat ( src/Data/Functor/Identity/Compat.hs, interpreted )
[ 44 of 122] Compiling Data.Functor.Identity.Compat.Repl ( src/Data/Functor/Identity/Compat/Repl.hs, interpreted )
[ 45 of 122] Compiling Data.Functor.Product.Compat ( src/Data/Functor/Product/Compat.hs, interpreted )
[ 46 of 122] Compiling Data.Functor.Product.Compat.Repl ( src/Data/Functor/Product/Compat/Repl.hs, interpreted )
[ 47 of 122] Compiling Data.Functor.Sum.Compat ( src/Data/Functor/Sum/Compat.hs, interpreted )
[ 48 of 122] Compiling Data.Functor.Sum.Compat.Repl ( src/Data/Functor/Sum/Compat/Repl.hs, interpreted )
[ 49 of 122] Compiling Data.IORef.Compat ( src/Data/IORef/Compat.hs, interpreted )
[ 50 of 122] Compiling Data.IORef.Compat.Repl ( src/Data/IORef/Compat/Repl.hs, interpreted )
[ 51 of 122] Compiling Data.List.Compat ( src/Data/List/Compat.hs, interpreted )
[ 52 of 122] Compiling Data.List.Compat.Repl ( src/Data/List/Compat/Repl.hs, interpreted )
[ 53 of 122] Compiling Data.List.NonEmpty.Compat ( src/Data/List/NonEmpty/Compat.hs, interpreted )
[ 54 of 122] Compiling Data.List.NonEmpty.Compat.Repl ( src/Data/List/NonEmpty/Compat/Repl.hs, interpreted )
[ 55 of 122] Compiling Data.Monoid.Compat ( src/Data/Monoid/Compat.hs, interpreted )
[ 56 of 122] Compiling Data.Monoid.Compat.Repl ( src/Data/Monoid/Compat/Repl.hs, interpreted )
[ 57 of 122] Compiling Data.Proxy.Compat ( src/Data/Proxy/Compat.hs, interpreted )
[ 58 of 122] Compiling Data.Proxy.Compat.Repl ( src/Data/Proxy/Compat/Repl.hs, interpreted )
[ 59 of 122] Compiling Data.Ratio.Compat ( src/Data/Ratio/Compat.hs, interpreted )
[ 60 of 122] Compiling Data.Ratio.Compat.Repl ( src/Data/Ratio/Compat/Repl.hs, interpreted )
[ 61 of 122] Compiling Data.STRef.Compat ( src/Data/STRef/Compat.hs, interpreted )
[ 62 of 122] Compiling Data.STRef.Compat.Repl ( src/Data/STRef/Compat/Repl.hs, interpreted )
[ 63 of 122] Compiling Data.Semigroup.Compat ( src/Data/Semigroup/Compat.hs, interpreted )
^CInterrupted.
λ> :reload
[  1 of 122] Compiling Control.Concurrent.Compat ( src/Control/Concurrent/Compat.hs, interpreted )
[  2 of 122] Compiling Control.Concurrent.Compat.Repl ( src/Control/Concurrent/Compat/Repl.hs, interpreted )
[  3 of 122] Compiling Control.Concurrent.MVar.Compat ( src/Control/Concurrent/MVar/Compat.hs, interpreted )
[  4 of 122] Compiling Control.Concurrent.MVar.Compat.Repl ( src/Control/Concurrent/MVar/Compat/Repl.hs, interpreted )
[  5 of 122] Compiling Control.Exception.Compat ( src/Control/Exception/Compat.hs, interpreted )
[  6 of 122] Compiling Control.Exception.Compat.Repl ( src/Control/Exception/Compat/Repl.hs, interpreted )
[  7 of 122] Compiling Control.Monad.Compat ( src/Control/Monad/Compat.hs, interpreted )
[  8 of 122] Compiling Control.Monad.Compat.Repl ( src/Control/Monad/Compat/Repl.hs, interpreted )
[  9 of 122] Compiling Control.Monad.Fail.Compat ( src/Control/Monad/Fail/Compat.hs, interpreted )
[ 10 of 122] Compiling Control.Monad.Fail.Compat.Repl ( src/Control/Monad/Fail/Compat/Repl.hs, interpreted )
[ 11 of 122] Compiling Control.Monad.IO.Class.Compat ( src/Control/Monad/IO/Class/Compat.hs, interpreted )
[ 12 of 122] Compiling Control.Monad.IO.Class.Compat.Repl ( src/Control/Monad/IO/Class/Compat/Repl.hs, interpreted )
[ 13 of 122] Compiling Control.Monad.ST.Lazy.Unsafe.Compat ( src/Control/Monad/ST/Lazy/Unsafe/Compat.hs, interpreted )
[ 14 of 122] Compiling Control.Monad.ST.Lazy.Unsafe.Compat.Repl ( src/Control/Monad/ST/Lazy/Unsafe/Compat/Repl.hs, interpreted )
[ 15 of 122] Compiling Control.Monad.ST.Unsafe.Compat ( src/Control/Monad/ST/Unsafe/Compat.hs, interpreted )
[ 16 of 122] Compiling Control.Monad.ST.Unsafe.Compat.Repl ( src/Control/Monad/ST/Unsafe/Compat/Repl.hs, interpreted )
[ 17 of 122] Compiling Data.Bifoldable.Compat ( src/Data/Bifoldable/Compat.hs, interpreted )
[ 18 of 122] Compiling Data.Bifoldable.Compat.Repl ( src/Data/Bifoldable/Compat/Repl.hs, interpreted )
[ 19 of 122] Compiling Data.Bifunctor.Compat ( src/Data/Bifunctor/Compat.hs, interpreted )
[ 20 of 122] Compiling Data.Bifunctor.Compat.Repl ( src/Data/Bifunctor/Compat/Repl.hs, interpreted )
[ 21 of 122] Compiling Data.Bitraversable.Compat ( src/Data/Bitraversable/Compat.hs, interpreted )
[ 22 of 122] Compiling Data.Bitraversable.Compat.Repl ( src/Data/Bitraversable/Compat/Repl.hs, interpreted )
[ 23 of 122] Compiling Data.Bits.Compat ( src/Data/Bits/Compat.hs, interpreted )
[ 24 of 122] Compiling Data.Bits.Compat.Repl ( src/Data/Bits/Compat/Repl.hs, interpreted )
[ 25 of 122] Compiling Data.Bool.Compat ( src/Data/Bool/Compat.hs, interpreted )
[ 26 of 122] Compiling Data.Bool.Compat.Repl ( src/Data/Bool/Compat/Repl.hs, interpreted )
[ 27 of 122] Compiling Data.Complex.Compat ( src/Data/Complex/Compat.hs, interpreted )
[ 28 of 122] Compiling Data.Complex.Compat.Repl ( src/Data/Complex/Compat/Repl.hs, interpreted )
[ 29 of 122] Compiling Data.Either.Compat ( src/Data/Either/Compat.hs, interpreted )
[ 30 of 122] Compiling Data.Either.Compat.Repl ( src/Data/Either/Compat/Repl.hs, interpreted )
[ 31 of 122] Compiling Data.Foldable.Compat ( src/Data/Foldable/Compat.hs, interpreted )
[ 32 of 122] Compiling Data.Foldable.Compat.Repl ( src/Data/Foldable/Compat/Repl.hs, interpreted )
[ 33 of 122] Compiling Data.Function.Compat ( src/Data/Function/Compat.hs, interpreted )
[ 34 of 122] Compiling Data.Function.Compat.Repl ( src/Data/Function/Compat/Repl.hs, interpreted )
[ 35 of 122] Compiling Data.Functor.Compat ( src/Data/Functor/Compat.hs, interpreted )
[ 36 of 122] Compiling Data.Functor.Compat.Repl ( src/Data/Functor/Compat/Repl.hs, interpreted )
[ 37 of 122] Compiling Data.Functor.Compose.Compat ( src/Data/Functor/Compose/Compat.hs, interpreted )
[ 38 of 122] Compiling Data.Functor.Compose.Compat.Repl ( src/Data/Functor/Compose/Compat/Repl.hs, interpreted )
[ 39 of 122] Compiling Data.Functor.Const.Compat ( src/Data/Functor/Const/Compat.hs, interpreted )
[ 40 of 122] Compiling Data.Functor.Const.Compat.Repl ( src/Data/Functor/Const/Compat/Repl.hs, interpreted )
[ 41 of 122] Compiling Data.Functor.Contravariant.Compat ( src/Data/Functor/Contravariant/Compat.hs, interpreted )
[ 42 of 122] Compiling Data.Functor.Contravariant.Compat.Repl ( src/Data/Functor/Contravariant/Compat/Repl.hs, interpreted )
[ 43 of 122] Compiling Data.Functor.Identity.Compat ( src/Data/Functor/Identity/Compat.hs, interpreted )
[ 44 of 122] Compiling Data.Functor.Identity.Compat.Repl ( src/Data/Functor/Identity/Compat/Repl.hs, interpreted )
[ 45 of 122] Compiling Data.Functor.Product.Compat ( src/Data/Functor/Product/Compat.hs, interpreted )
[ 46 of 122] Compiling Data.Functor.Product.Compat.Repl ( src/Data/Functor/Product/Compat/Repl.hs, interpreted )
[ 47 of 122] Compiling Data.Functor.Sum.Compat ( src/Data/Functor/Sum/Compat.hs, interpreted )
[ 48 of 122] Compiling Data.Functor.Sum.Compat.Repl ( src/Data/Functor/Sum/Compat/Repl.hs, interpreted )
[ 49 of 122] Compiling Data.IORef.Compat ( src/Data/IORef/Compat.hs, interpreted )
[ 50 of 122] Compiling Data.IORef.Compat.Repl ( src/Data/IORef/Compat/Repl.hs, interpreted )
[ 51 of 122] Compiling Data.List.Compat ( src/Data/List/Compat.hs, interpreted )
[ 52 of 122] Compiling Data.List.Compat.Repl ( src/Data/List/Compat/Repl.hs, interpreted )
[ 53 of 122] Compiling Data.List.NonEmpty.Compat ( src/Data/List/NonEmpty/Compat.hs, interpreted )
[ 54 of 122] Compiling Data.List.NonEmpty.Compat.Repl ( src/Data/List/NonEmpty/Compat/Repl.hs, interpreted )
[ 55 of 122] Compiling Data.Monoid.Compat ( src/Data/Monoid/Compat.hs, interpreted )
[ 56 of 122] Compiling Data.Monoid.Compat.Repl ( src/Data/Monoid/Compat/Repl.hs, interpreted )
[ 57 of 122] Compiling Data.Proxy.Compat ( src/Data/Proxy/Compat.hs, interpreted )
[ 58 of 122] Compiling Data.Proxy.Compat.Repl ( src/Data/Proxy/Compat/Repl.hs, interpreted )
[ 59 of 122] Compiling Data.Ratio.Compat ( src/Data/Ratio/Compat.hs, interpreted )
[ 60 of 122] Compiling Data.Ratio.Compat.Repl ( src/Data/Ratio/Compat/Repl.hs, interpreted )
[ 61 of 122] Compiling Data.STRef.Compat ( src/Data/STRef/Compat.hs, interpreted )
[ 62 of 122] Compiling Data.STRef.Compat.Repl ( src/Data/STRef/Compat/Repl.hs, interpreted )
[ 63 of 122] Compiling Data.Semigroup.Compat ( src/Data/Semigroup/Compat.hs, interpreted )
[ 64 of 122] Compiling Data.Semigroup.Compat.Repl ( src/Data/Semigroup/Compat/Repl.hs, interpreted )
[ 65 of 122] Compiling Data.String.Compat ( src/Data/String/Compat.hs, interpreted )
[ 66 of 122] Compiling Data.String.Compat.Repl ( src/Data/String/Compat/Repl.hs, interpreted )
[ 67 of 122] Compiling Data.Tuple.Compat ( src/Data/Tuple/Compat.hs, interpreted )

src/Data/Tuple/Compat.hs:19:1: warning: [-Wunused-imports]
    The import of ‘GHC.Tuple’ is redundant
      except perhaps to import instances from ‘GHC.Tuple’
    To import instances alone, use: import GHC.Tuple()
   |
19 | import GHC.Tuple (Solo(..))
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ 68 of 122] Compiling Data.Tuple.Compat.Repl ( src/Data/Tuple/Compat/Repl.hs, interpreted )
[ 69 of 122] Compiling Data.Type.Coercion.Compat ( src/Data/Type/Coercion/Compat.hs, interpreted )
[ 70 of 122] Compiling Data.Type.Coercion.Compat.Repl ( src/Data/Type/Coercion/Compat/Repl.hs, interpreted )
[ 71 of 122] Compiling Data.Type.Equality.Compat ( src/Data/Type/Equality/Compat.hs, interpreted )
[ 72 of 122] Compiling Data.Type.Equality.Compat.Repl ( src/Data/Type/Equality/Compat/Repl.hs, interpreted )
[ 73 of 122] Compiling Data.Version.Compat ( src/Data/Version/Compat.hs, interpreted )
[ 74 of 122] Compiling Data.Version.Compat.Repl ( src/Data/Version/Compat/Repl.hs, interpreted )
[ 75 of 122] Compiling Data.Void.Compat ( src/Data/Void/Compat.hs, interpreted )
[ 76 of 122] Compiling Data.Void.Compat.Repl ( src/Data/Void/Compat/Repl.hs, interpreted )
[ 77 of 122] Compiling Data.Word.Compat ( src/Data/Word/Compat.hs, interpreted )
[ 78 of 122] Compiling Data.Word.Compat.Repl ( src/Data/Word/Compat/Repl.hs, interpreted )
[ 79 of 122] Compiling Debug.Trace.Compat ( src/Debug/Trace/Compat.hs, interpreted )
[ 80 of 122] Compiling Debug.Trace.Compat.Repl ( src/Debug/Trace/Compat/Repl.hs, interpreted )
[ 81 of 122] Compiling Foreign.ForeignPtr.Compat ( src/Foreign/ForeignPtr/Compat.hs, interpreted )
[ 82 of 122] Compiling Foreign.ForeignPtr.Compat.Repl ( src/Foreign/ForeignPtr/Compat/Repl.hs, interpreted )
[ 83 of 122] Compiling Foreign.ForeignPtr.Safe.Compat ( src/Foreign/ForeignPtr/Safe/Compat.hs, interpreted )
[ 84 of 122] Compiling Foreign.ForeignPtr.Safe.Compat.Repl ( src/Foreign/ForeignPtr/Safe/Compat/Repl.hs, interpreted )
[ 85 of 122] Compiling Foreign.ForeignPtr.Unsafe.Compat ( src/Foreign/ForeignPtr/Unsafe/Compat.hs, interpreted )
[ 86 of 122] Compiling Foreign.ForeignPtr.Unsafe.Compat.Repl ( src/Foreign/ForeignPtr/Unsafe/Compat/Repl.hs, interpreted )
[ 87 of 122] Compiling Foreign.Marshal.Alloc.Compat ( src/Foreign/Marshal/Alloc/Compat.hs, interpreted )
[ 88 of 122] Compiling Foreign.Marshal.Alloc.Compat.Repl ( src/Foreign/Marshal/Alloc/Compat/Repl.hs, interpreted )
[ 89 of 122] Compiling Foreign.Marshal.Array.Compat ( src/Foreign/Marshal/Array/Compat.hs, interpreted )
[ 90 of 122] Compiling Foreign.Marshal.Array.Compat.Repl ( src/Foreign/Marshal/Array/Compat/Repl.hs, interpreted )
[ 91 of 122] Compiling Foreign.Marshal.Safe.Compat ( src/Foreign/Marshal/Safe/Compat.hs, interpreted )
[ 92 of 122] Compiling Foreign.Marshal.Safe.Compat.Repl ( src/Foreign/Marshal/Safe/Compat/Repl.hs, interpreted )
[ 93 of 122] Compiling Foreign.Marshal.Unsafe.Compat ( src/Foreign/Marshal/Unsafe/Compat.hs, interpreted )
[ 94 of 122] Compiling Foreign.Marshal.Unsafe.Compat.Repl ( src/Foreign/Marshal/Unsafe/Compat/Repl.hs, interpreted )
[ 95 of 122] Compiling Foreign.Marshal.Utils.Compat ( src/Foreign/Marshal/Utils/Compat.hs, interpreted )
[ 96 of 122] Compiling Foreign.Marshal.Compat ( src/Foreign/Marshal/Compat.hs, interpreted )
[ 97 of 122] Compiling Foreign.Marshal.Compat.Repl ( src/Foreign/Marshal/Compat/Repl.hs, interpreted )
[ 98 of 122] Compiling Foreign.Compat   ( src/Foreign/Compat.hs, interpreted )
[ 99 of 122] Compiling Foreign.Compat.Repl ( src/Foreign/Compat/Repl.hs, interpreted )
[100 of 122] Compiling Foreign.Marshal.Utils.Compat.Repl ( src/Foreign/Marshal/Utils/Compat/Repl.hs, interpreted )
[101 of 122] Compiling Numeric.Compat   ( src/Numeric/Compat.hs, interpreted )
[102 of 122] Compiling Numeric.Compat.Repl ( src/Numeric/Compat/Repl.hs, interpreted )
[103 of 122] Compiling Numeric.Natural.Compat ( src/Numeric/Natural/Compat.hs, interpreted )
[104 of 122] Compiling Numeric.Natural.Compat.Repl ( src/Numeric/Natural/Compat/Repl.hs, interpreted )
[105 of 122] Compiling Prelude.Compat   ( src/Prelude/Compat.hs, interpreted )
[106 of 122] Compiling Prelude.Compat.Repl ( src/Prelude/Compat/Repl.hs, interpreted )
[107 of 122] Compiling System.Environment.Compat ( src/System/Environment/Compat.hs, interpreted )
[108 of 122] Compiling System.Environment.Compat.Repl ( src/System/Environment/Compat/Repl.hs, interpreted )
[109 of 122] Compiling System.Exit.Compat ( src/System/Exit/Compat.hs, interpreted )
[110 of 122] Compiling System.Exit.Compat.Repl ( src/System/Exit/Compat/Repl.hs, interpreted )
[111 of 122] Compiling System.IO.Compat ( src/System/IO/Compat.hs, interpreted )
[112 of 122] Compiling System.IO.Compat.Repl ( src/System/IO/Compat/Repl.hs, interpreted )
[113 of 122] Compiling System.IO.Error.Compat ( src/System/IO/Error/Compat.hs, interpreted )
[114 of 122] Compiling System.IO.Error.Compat.Repl ( src/System/IO/Error/Compat/Repl.hs, interpreted )
[115 of 122] Compiling System.IO.Unsafe.Compat ( src/System/IO/Unsafe/Compat.hs, interpreted )
[116 of 122] Compiling System.IO.Unsafe.Compat.Repl ( src/System/IO/Unsafe/Compat/Repl.hs, interpreted )
[117 of 122] Compiling Text.Read.Compat ( src/Text/Read/Compat.hs, interpreted )
[118 of 122] Compiling Text.Read.Compat.Repl ( src/Text/Read/Compat/Repl.hs, interpreted )
[119 of 122] Compiling Text.Read.Lex.Compat ( src/Text/Read/Lex/Compat.hs, interpreted )
[120 of 122] Compiling Text.Read.Lex.Compat.Repl ( src/Text/Read/Lex/Compat/Repl.hs, interpreted )
[121 of 122] Compiling Type.Reflection.Compat ( src/Type/Reflection/Compat.hs, interpreted )
[122 of 122] Compiling Type.Reflection.Compat.Repl ( src/Type/Reflection/Compat/Repl.hs, interpreted )

Notice that when I Ctrl-C'd, around 63 or so modules had loaded. After I invoke :reload, however, all of the previously built 63 modules are re-built! This seems like wasted work. This is especially painful in larger projects like lens, where the modules take longer to compile.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking