Status/SLPJ-Tickets
|
Version 192 (modified by simonpj, 22 months ago)
|
|
--
|
This page collects tickets that Simon PJ is interested in, so that he remembers them
New typechecker things to fix (with Dimitrios)
- #5030: slow typechecking
- #4347: rigid type signatures for impredicativity
- #4310: deferred equalities and forall types (needs Brent's work)
Arity
- #3924: weak arity leads to weak strictness
- #3698: arity analysis again
- #3697: class method selectors
- #3034: divInt and arity
- #3627: profiling and eta expansion
- #2915: arity too small
- #2823: another arity expansion bug (related to dictionaries)
- #2440: bad code with type families; I believe this is also arity-related
- #1547: profiling and arity
Inlining
- #4833: finding the right loop breaker
- #4227: SPECIALISE pragmas for functions in other modules
- #3781, #3755: inlining for local functions: discount for scrutinising free vars
- #3765: CONLIKE things and case expressions (need two unfoldings)
- #3526: Inliner behaviour confusing (waiting on Bryan)
- #3073 and Commentary/Compiler/DesugaringInstances: better desugaring for instances
- #2396: default class method not inlined
- #2354: NOINLINE pragma ignored
- #2078: INLINing improvement; ask Christian.Maeder@… to see if it improves CASL
- #2840: top level unlifted string literals
- #3123: feature request: recursive inlining and peeling
New code generator
- New code generator tickets
- #4065: forward propagation
- #3132: fix cgCase of PrimAlts
- #3458, #1216: undesirable allocation of something that is nearly a let-no-escape
- #3462: allocate large objects with allocateLocal()
- #2253: NCG could do better. Look at this when John D’s ncg is working
- #783: SRTs getting big
- #2289: cheap check at start of case alternatives
- #2731: avoiding unnecessary evaluation when unpacking constructors
- #3940: propagate fix
- #3969: bad code for tight loop
- #4090: failed getRegister in asm codegen
- #605: strict/unboxed enumerations
- #2607: space leak: inlining defeats selector thunk optimisation
- #4470: merge identical counters
- #2439: Strict dictionaries
- #3138: returning a known constructor (Lennart's cmonad package)
- #2988: better float-in
- #2940: do CSE after CorePrep
- #2132: Optimise nested comparisons: if you know x>0 then you know x>=1 etc. Maybe a special pass that knows about arithmetic?
- #149: float-out/CSE
- #2289, #2387, #1600: nested CPR analysis
- #2255, #3767, #2642, #3831, #4941: Improve SpecConstr for free variables, and for join points.
- #2374: SAT and MutableByteArray Max?
- #1969: quadratic behaviour in the specialiser
- #2346: desugaring let-bindings
- Use wildcards for dead variables in interface files.
Tiresome arithmetic things
- #2281: properFraction implemented with modf primitive?
- #4101: constant folding for (**)
- #3676: realToFrac conversions
- #3744: comparisons against minBound and maxBound are not optimised away
- #3065: quot is sub-optimal
- #2269: Word type to Double or Float conversions
GHCi
- #4017: unhelpful GHCi message
Outright bugs
- #2182: GHCi session retains instance after removing a module from scope
- #1241: Lifting the Coverage Condition for functional dependencies isn’t the Right Thing Manuel
New constraint simplifier
Types and type inference
- #3714: distinguish type parameters from indices
- #4259: overlapping type family instances
- #4466: explicit type application
- #3490: superclasses and ambiguity
- #3632: better update for records with existentials
- #1496, #4846: Newtype deriving and type families type soundness problem
- #1897: Ambiguity: don't infer a type that can't be checked if the type is given as a signature (this one is important). See SPJ's mailbox: Haskell type system/Ambiguity.
- #2641: revise what -XExtendedDefaultRules does
- #1634: deep skolemisation; also this one #3592
- #3018: be lazier about solving class instances
- #2357: Implement the Haskell Prime proposal for polymorphic pattern bindings
Better error messages
- #4921: ambiguous type variables
- #1330: another bad error message (Church2)
- #3169: better occurs-check error message
- #2648: Report out of date interface files robustly
- #2588: Better error message about ‘forall’
- #2360: Better location info in occurs-check message.
- #1928: Confusing type error message (Claus makes suggestions)
- #2534: Another confusing type error message
- #2900: Improve decomposition of function types
Template Haskell
Features
- #5248: Infer context in type signatures
- #5144: pattern synonyms
- #5073: blockST and friends
- #788, #2895: Class aliases
- #2595: record updates
- #4823: strength reduction for array indexing
- #4479: type directed name resolution (TDNR)
- #4426: simpler rule for implicit quantification
- #4372: better quasiquotes
- #4359: lambda case
- #4148: improvements to mdo syntax
- #595: pattern-match overlap checking
- #3843: Add plugins
- #3701: Implicitly declared existentials: a class as a type
- #3480: Fingerprints in TypeRep
- #3217: better flag handling for GHCi
- #2600, #2110: Bind type variables and constraints in RULES
- #1930: Infix type operators: a+b.
- #960: Generate local info for ‘undefined’. Implicit location parameters in general
- #2135: Warn when exporting a function whose type mentions a type constructor defined locally but not itself exported
- #2526: Add -fwarn-missing-export-signatures
- #2119: Explicitly importing deprecated symbols should generate deprecation warnings
- #2207: Load interfaces for GHC.* even without -O
- #1231: Better deprecations
Not sure what to do about these
- #2284: the state-hack "optimisation" causes much re-computation
- #3872: divergence in simplifier
- #4005: generational GC pathalogical case
- #1349: strict function argument types
Download in other formats: