Haskell.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

ghc-tickets

Thread Start a new thread
Download
Threads by month
  • ----- 2025 -----
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2018 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2017 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2016 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2015 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2014 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2013 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
ghc-tickets@haskell.org

October 2016

  • 1 participants
  • 1130 discussions
Re: [GHC] #5927: A type-level "implies" constraint on Constraints
by GHC 15 Oct '16

15 Oct '16
#5927: A type-level "implies" constraint on Constraints -------------------------------------+------------------------------------- Reporter: illissius | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 7.4.1 checker) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by Iceland_jack): I believe `MonadTrans` should be {{{#!hs class forall m. Monad m `Implies` Monad (t m) => MonadTrans t where lift :: Monad m => m a -> (t m) a }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/5927#comment:22> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
1 0
0 0
[GHC] #12355: Invalid assembly in foreign prim
by GHC 14 Oct '16

14 Oct '16
#12355: Invalid assembly in foreign prim -------------------------------------+------------------------------------- Reporter: osa1 | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.1 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- {{{ ➜ prim_panic ghc Lib.hs [1 of 1] Compiling Lib ( Lib.hs, Lib.o ) /tmp/ghc14440_0/ghc_2.s: Assembler messages: /tmp/ghc14440_0/ghc_2.s:65:0: error: Error: number of operands mismatch for `jmp' `gcc' failed in phase `Assembler'. (Exit code: 1) ➜ prim_panic cat Lib.hs {-# LANGUAGE GHCForeignImportPrim, UnliftedFFITypes, MagicHash #-} module Lib where import GHC.Prim foreign import prim f1 :: Int# -> Int# }}} Tried with: HEAD as of today, 8.0.1. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12355> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
1 9
0 0
[GHC] #12529: Error message: visible type application of constructor/variable that is not in scope
by GHC 14 Oct '16

14 Oct '16
#12529: Error message: visible type application of constructor/variable that is not in scope -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Keywords: | Operating System: Unknown/Multiple TypeApplications | Architecture: | Type of failure: Incorrect Unknown/Multiple | warning at compile-time Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- If I use an identifier not in scope: {{{ $ ghci -ignore-dot-ghci GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help Prelude> p <interactive>:1:1: error: Variable not in scope: p Prelude> P <interactive>:2:1: error: Data constructor not in scope: P }}} Using visible type application: {{{ $ ghci -ignore-dot-ghci -XTypeApplications GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help Prelude> p @Int <interactive>:1:1: error: • Cannot apply expression of type ‘t0’ to a visible type argument ‘Int’ • In the expression: p @Int In an equation for ‘it’: it = p @Int Prelude> P @Int <interactive>:2:1: error: • Cannot apply expression of type ‘t0’ to a visible type argument ‘Int’ • In the expression: P @Int In an equation for ‘it’: it = P @Int }}} I would prefer these error messages to be the same as the first two: thoughts? -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12529> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
1 8
0 0
[GHC] #12696: Exception gives not enough information to be useful
by GHC 14 Oct '16

14 Oct '16
#12696: Exception gives not enough information to be useful -------------------------------------+------------------------------------- Reporter: flip101 | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Keywords: exception | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- I was told in #haskell @freenode to report this as a bug. I have a program that throws exceptions and tried debugging the problem within ghci and also outside of ghci with these commands: {{{ stack build --ghc-options '-rtsopts -fprof-auto -fprof-auto-calls' --executable-profiling stack exec -- vhdl +RTS -xc }}} {{{#!hs tfComment :: Data from => from -> from tfComment = transformBi tf where tf (Comment ((pos_c, c), (pos_s, s))) = Comment $ ((pos_c, T.concat ["--", c]), (pos_s, s)) tf a = a zeroPos :: Data from => from -> from zeroPos = transformBi zp where zp sp(a)(M.SourcePos _ _ _) = sp { M.sourceName="", M.sourceLine=unsafePos 1, M.sourceColumn=unsafePos 1} zp x = x -- (a)dd (e)xtended(i)dentifier (s)laches aeis :: Data from => from -> from aeis = transformBi x where x (IExtended a) = let updated_text :: Text updated_text = T.concat ["\\", snd $ t_text a, "\\"] in IExtended $ a {t_text = (fst $ t_text a, updated_text)} x a = a bla = something.. where parser_prop :: ContextClause -> Bool parser_prop = \x -> (transformIn <$> Right x) == (transformOut <$> parseSource parser $ T.toStrict . printSource $ transformIn x) transformIn ast = zeroPos ast transformOut ast = tfComment $ aeis $ zeroPos ast }}} ghci trace {{{ λ> :trace main Stopped in <exception thrown>, <unknown> _exception :: e = _ λ> :back Logged breakpoint at Main.hs:95:13-26 _result :: from -> from tf :: Comment -> Comment λ> :list 94 tfComment :: Data from => from -> from 95 tfComment = transformBi tf -- transformBi tf highlighted here 96 where tf (Comment ((pos_c, c), (pos_s, s))) = Comment $ ((pos_c, T.concat ["--", c]), (pos_s, s)) λ> :back Logged breakpoint at Main.hs:242:28-57 _result :: from ast :: from λ> :list 241 transformIn ast = zeroPos ast 242 transformOut ast = tfComment $ aeis $ zeroPos ast -- tfComment $ aeis $ zeroPos ast highlighted here 243 λ> :force ast ast = Right [] λ> transformIn (Right []) Right [] λ> transformOut (Right []) Right [] λ> zeroPos (Right []) Right [] λ> aeis (Right []) Right [] λ> tfComment (Right []) Right [] }}} run with profiling options (this was aborted at some point) {{{ » stack exec -- vhdl +RTS -xc *** Exception (reporting due to +RTS -xc): (THUNK_2_0), stack trace: Data.Data.CAF --> evaluated by: Data.Generics.Uniplate.Internal.Data.sybChildren.f, called from Data.Generics.Uniplate.Internal.Data.sybChildren, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f.cs, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate, called from Data.Generics.Uniplate.Internal.Data.insertHitMap, called from Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.biplate.answer, called from Data.Generics.Uniplate.Data.biplate, called from Main.CAF:lvl2028_r3oe6 --> evaluated by: Data.HashMap.Base.toList', called from Data.HashMap.Base.equal, called from Data.HashMap.Base.==, called from Data.Generics.Uniplate.Internal.Data.fixEq, called from Data.Generics.Uniplate.Internal.Data.insertHitMap, called from Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.biplate.answer, called from Data.Generics.Uniplate.Data.biplate, called from Main.CAF:lvl2028_r3oe6 *** Exception (reporting due to +RTS -xc): (THUNK_STATIC), stack trace: Data.Generics.Uniplate.Internal.Data.uniplateVerbose, called from Data.Generics.Uniplate.Internal.Data.CAF:uniplateVerbose --> evaluated by: Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.biplate.answer, called from Data.Generics.Uniplate.Data.biplate, called from Main.CAF:lvl2028_r3oe6 --> evaluated by: Data.Generics.Uniplate.Internal.Data.fromOracle, called from Data.Generics.Uniplate.Internal.Data.biplateData, called from Data.Generics.Uniplate.Data.biplate, called from Main.tfComment, called from Main.qcrp.transformOut, called from Main.qcrp.parser_prop, called from Main.qcrp.parser_prop, called from Main.qc2.logInput, called from Main.qc2.logInput, called from Main.qc2.logInput, called from Main.qc2, called from Test.QuickCheck.Property.forAllShrink.\.\, called from Test.QuickCheck.Property.property, called from Test.QuickCheck.Test.quickCheckWithResult.property', called from Test.QuickCheck.Test.quickCheckWithResult.\, called from Test.QuickCheck.Text.withNullTerminal, called from Test.QuickCheck.Test.quickCheckWithResult, called from Main.qc2, called from Main.qcrp, called from Main.ntc *** Exception (reporting due to +RTS -xc): (THUNK_2_0), stack trace: Data.Generics.Uniplate.Internal.Data.sybChildren.f, called from Data.Generics.Uniplate.Internal.Data.sybChildren, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f.cs, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate, called from Data.Generics.Uniplate.Internal.Data.insertHitMap, called from Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.biplate.answer, called from Data.Generics.Uniplate.Data.biplate, called from Main.CAF:lvl2025_r3oe3 --> evaluated by: Data.HashMap.Base.toList', called from Data.HashMap.Base.equal, called from Data.HashMap.Base.==, called from Data.Generics.Uniplate.Internal.Data.fixEq, called from Data.Generics.Uniplate.Internal.Data.insertHitMap, called from Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.biplate.answer, called from Data.Generics.Uniplate.Data.biplate, called from Main.CAF:lvl2025_r3oe3 *** Exception (reporting due to +RTS -xc): (THUNK_2_0), stack trace: Data.Generics.Uniplate.Internal.Data.sybChildren.f, called from Data.Generics.Uniplate.Internal.Data.sybChildren, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f.cs, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate, called from Data.Generics.Uniplate.Internal.Data.insertHitMap, called from Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.biplate.answer, called from Data.Generics.Uniplate.Data.biplate, called from Main.CAF:lvl2022_r3oe0 --> evaluated by: Data.HashMap.Base.toList', called from Data.HashMap.Base.equal, called from Data.HashMap.Base.==, called from Data.Generics.Uniplate.Internal.Data.fixEq, called from Data.Generics.Uniplate.Internal.Data.insertHitMap, called from Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.biplate.answer, called from Data.Generics.Uniplate.Data.biplate, called from Main.CAF:lvl2022_r3oe0 *** Exception (reporting due to +RTS -xc): (THUNK_2_0), stack trace: Data.Generics.Uniplate.Internal.Data.sybChildren.f, called from Data.Generics.Uniplate.Internal.Data.sybChildren, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f.cs, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate, called from Data.Generics.Uniplate.Internal.Data.insertHitMap, called from Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.biplate.answer, called from Data.Generics.Uniplate.Data.biplate, called from Main.CAF:lvl1945_r3oc9 *** Exception (reporting due to +RTS -xc): (THUNK_2_0), stack trace: Data.Generics.Uniplate.Internal.Data.sybChildren.f, called from Data.Generics.Uniplate.Internal.Data.sybChildren, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f.cs, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate, called from Data.Generics.Uniplate.Internal.Data.insertHitMap, called from Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.descend.answer, called from Data.Generics.Uniplate.Data.descend, called from Data.Generics.Uniplate.Operations.transform.g, called from Data.Generics.Uniplate.Operations.transform, called from Main.CAF:answer6_r3ocg --> evaluated by: Data.HashMap.Base.toList', called from Data.HashMap.Base.equal, called from Data.HashMap.Base.==, called from Data.Generics.Uniplate.Internal.Data.fixEq, called from Data.Generics.Uniplate.Internal.Data.insertHitMap, called from Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.descend.answer, called from Data.Generics.Uniplate.Data.descend, called from Data.Generics.Uniplate.Operations.transform.g, called from Data.Generics.Uniplate.Operations.transform, called from Main.CAF:answer6_r3ocg *** Exception (reporting due to +RTS -xc): (THUNK_2_0), stack trace: Data.Generics.Uniplate.Internal.Data.sybChildren.f, called from Data.Generics.Uniplate.Internal.Data.sybChildren, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f.cs, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate, called from Data.Generics.Uniplate.Internal.Data.insertHitMap, called from Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.descend.answer, called from Data.Generics.Uniplate.Data.descend, called from Data.Generics.Uniplate.Operations.transform.g, called from Data.Generics.Uniplate.Operations.transform, called from Main.CAF:answer7_r3ocp --> evaluated by: Data.HashMap.Base.toList', called from Data.HashMap.Base.equal, called from Data.HashMap.Base.==, called from Data.Generics.Uniplate.Internal.Data.fixEq, called from Data.Generics.Uniplate.Internal.Data.insertHitMap, called from Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.descend.answer, called from Data.Generics.Uniplate.Data.descend, called from Data.Generics.Uniplate.Operations.transform.g, called from Data.Generics.Uniplate.Operations.transform, called from Main.CAF:answer7_r3ocp *** Exception (reporting due to +RTS -xc): (THUNK_2_0), stack trace: Data.Generics.Uniplate.Internal.Data.sybChildren.f, called from Data.Generics.Uniplate.Internal.Data.sybChildren, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f.cs, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate.f, called from Data.Generics.Uniplate.Internal.Data.insertHitMap.populate, called from Data.Generics.Uniplate.Internal.Data.insertHitMap, called from Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.descend.answer, called from Data.Generics.Uniplate.Data.descend, called from Data.Generics.Uniplate.Operations.transform.g, called from Data.Generics.Uniplate.Operations.transform, called from Main.CAF:answer8_r3ocy --> evaluated by: Data.HashMap.Base.toList', called from Data.HashMap.Base.equal, called from Data.HashMap.Base.==, called from Data.Generics.Uniplate.Internal.Data.fixEq, called from Data.Generics.Uniplate.Internal.Data.insertHitMap, called from Data.Generics.Uniplate.Internal.Data.readCacheFollower, called from Data.Generics.Uniplate.Data.descend.answer, called from Data.Generics.Uniplate.Data.descend, called from Data.Generics.Uniplate.Operations.transform.g, called from Data.Generics.Uniplate.Operations.transform, called from Main.CAF:answer8_r3ocy ^C^C^C^C }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12696> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
1 9
0 0
[GHC] #12464: Add `instance Semigroup a => Semigroup (IO a)`
by GHC 14 Oct '16

14 Oct '16
#12464: Add `instance Semigroup a => Semigroup (IO a)` -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: Type: feature | Status: new request | Priority: normal | Milestone: Component: Core | Version: 8.0.1 Libraries | Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- What the title says -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12464> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
1 3
0 0
[GHC] #12532: Remove sum and tuple names from knownKeyNames
by GHC 14 Oct '16

14 Oct '16
#12532: Remove sum and tuple names from knownKeyNames -------------------------------------+------------------------------------- Reporter: bgamari | Owner: Type: task | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- As noted in ticket:12415#comment:5 there are a large number of names inhabiting `knownKeyNames` and therefore the original name cache due to tuples and sums. It shouldn't be so hard to remove these and handle them in an ad-hoc manner: * original name cache lookups (e.g. finding out the `Name` associated with an `OccName`) can been handled by parsing the `OccName`'s string * looking up the `Name` associated with a `Unique` (which is needed in `BinIface` during interface file deserialization) can be done with a set of static functions. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12532> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
1 8
0 0
[GHC] #12415: Fancy BinIface encoding for tuples is broken for constraint tuples
by GHC 14 Oct '16

14 Oct '16
#12415: Fancy BinIface encoding for tuples is broken for constraint tuples -------------------------------------+------------------------------------- Reporter: bgamari | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: #12357 Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- We have a special way of encoding tuple-related names in the interface file symbol table. See `Note [Symbol table representation of names]`. However, it was broken for constraint tuples by ffc21506894c7887d3620423aaf86bc6113a1071. The problem is very similar to the one which prevented us from encoding tuple type representations in #12357 (see ticket:12357#comment:31). By unwiring constraint tuples it becomes harder to identify them for special handling during serialization. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12415> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
1 8
0 0
[GHC] #12705: Renamer should reject signatures that reexport only part of a declaration
by GHC 14 Oct '16

14 Oct '16
#12705: Renamer should reject signatures that reexport only part of a declaration -------------------------------------+------------------------------------- Reporter: ezyang | Owner: Type: bug | Status: new Priority: low | Milestone: Component: Compiler | Version: 8.1 (Type checker) | Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- The following signature is bogus, and also, unfortunately, accepted by GHC at the moment: {{{ signature A(f) where data T = MkT { f :: Bool } }}} This doesn't make any sense at all. We should reject it early. It can lead to very strange errors (see bkpreex05 in tree) but happily it is fairly easy to avoid. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12705> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
1 0
0 0
[GHC] #12053: Mode for ghc --make which only compiles the files I pass on command line
by GHC 14 Oct '16

14 Oct '16
#12053: Mode for ghc --make which only compiles the files I pass on command line -------------------------------------+------------------------------------- Reporter: ezyang | Owner: ezyang Type: feature | Status: new request | Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Keywords: backpack | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- Here are a few situations where GHC picks up "too many" files when running `--make`: * Suppose a user doesn't add enough modules to `exposed-modules`/`other- modules` in Cabal. GHC will happily pick up extra source files, but those files won't get bundled in the `sdist` or be included in ABI computation. Difficult for Cabal to tell when this has happened. * Suppose the user wants to define multiple internal libraries, and give them the same hs-source-dir. This won't work: because GHC sees the source file it will prefer it over the external dependency. There's a very easy thing that GHC could do to make this better: add a mode to `--make` which says "only compile the files that are explicitly passed on the command line." Something like `ghc --make --only A.hs` will only build A.hs, and error if you try to import B.hs. Seems like this should be fairly easy to do, and would help solve a lot of problems related to GHC slurping up too many files. (I've assigned myself because this is a blocker for backpack, but if someone wants to take a crack at this be my guest.) -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12053> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
1 2
0 0
[GHC] #10798: Signatures with only types should not be included in unit keys
by GHC 14 Oct '16

14 Oct '16
#10798: Signatures with only types should not be included in unit keys -------------------------------------+------------------------------------- Reporter: ezyang | Owner: ezyang Type: feature | Status: new request | Priority: normal | Milestone: ⊥ Component: Package | Version: 7.11 system | Keywords: backpack | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Revisions: | -------------------------------------+------------------------------------- Suppose we want to modularize the dependence on `p` in this program: {{{ unit p where module A where data T = T mkT = T unit q where include p module B where import A bar = mkT }}} The obvious signature to write for `A` is: {{{ signature A where data T mkT :: T }}} But this presupposes an implementation of `A` which exports `T`. But `B` doesn't use any export of `T`, and an equally valid implementation would be if `T` was defined in some `Types` module and then imported here. But suppose we change our signature to be: {{{ signature A.Types where data T signature A where import A.Types mkT :: T }}} This is maximally general, but requires that the module which exports `T` be named `A.Types`. If someone puts the type anywhere else, we have to rename the signature to the real place it was defined, or make a dummy implementation module which reexports the type in question. Now there is a curious thing, which is that the choice of module we use to fill these extra signature modules currently influences the type identity of anything else in the unit. But we never rely on any code from these signatures: if I make two distinct dummy modules to set `T` to the same type, this really shouldn't have any impact (at all!) on the code generated. So, my suggestion is that if a signature contains only types (perhaps they could be named something else, like `tysignature`), they should not count towards the calculation of a unit key. This means that a user can freely create dummy modules to fill in these types when they are instantiating; all that is being done is helping Backpack figure out what the identities of types are. (If we wanted to be fancy, Backpack could even look inside type signatures to determine some types, but let's not go there for now.) -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10798> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
1 1
0 0
  • ← Newer
  • 1
  • ...
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • ...
  • 113
  • Older →

HyperKitty Powered by HyperKitty version 1.3.9.