- 08 Feb, 2016 21 commits
-
-
Ömer Sinan Ağacan authored
We also need to update `stgBindHasCafRefs` assertion with this change, as we no longer have the pre-computed SRT, LiveVars etc. We rename it to `topStgBindHasCafRefs` and implement it like this: A non-updatable top-level binding may refer to a CAF by referring to a top-level definition with CAFs. A top-level definition may have CAFs if it's updatable. At this point (because this is done after TidyPgm) top-level Ids (whether imported or defined in this module) are GlobalIds, so the top-levelness test is easy. (see also comments in the code) Reviewers: bgamari, simonpj, austin Reviewed By: simonpj Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1889 GHC Trac Issues: #11550
-
Simon Peyton Jones authored
tyConRolesRepresentational is just a version of tyConRolesX, but specialised for a Representational argument. Saves a bit of extra argument passing and pattern matching, and tyConRolesX was often called when we knew the argument role was Representational. Rather to my surprise this made the compiler allocate 5% less for tests T9872{b,c,d}. At least I think it's this commit. Good thing, regardless.
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
mkTvSubst :: InScopeSet -> TvSubstEnv -> TCvSubst produces a TCvSubst with an empty CvSubstEnv
-
Simon Peyton Jones authored
..around newtype deriving instances. See esp the new Note [Newtype-deriving instances] No change in behaviour
-
Ben Gamari authored
-
Simon Peyton Jones authored
This patch fixes Trac #11523. * The basic problem was that TcRnTypes.superClassesMightHelp was returning True of a Derived constraint, and that led to us expanding Given superclasses, which produced the same Derived constraint again, and so on infinitely. We really want to do this only if there are unsolve /Wanted/ contraints! * On the way I made TcSMonad.getUnsolvedInerts a bit more discriminating about which Derived equalities it returns; see Note [Unsolved Derived equalities] in TcSMonad * Lots of new comments in TcSMonad.
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
This is a small refactoring, no change in behaviour.
-
Simon Peyton Jones authored
If we fail to typecheck by blowing the constraint simplifier iteration limit, we want to see the limit-blowing meessage. Previously it was being suppressed by the type /error/, which suppress the iteration-limit /warning/. Solution: make the iteration-limit message into an error.
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
They were excessively verbose. I've commented them out rather than deleting so that they can easily be restored.
-
Simon Peyton Jones authored
When investigating Trac #11523 I found that superclass expansion was a little over-aggressive; we were sort of unrolling each loop twice. This patch corrects that, and adds explanatory comments.
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
Flag up the problem highlighted in Trac #11518 comment:15
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
This is a more stressful example of T11480.
-
Ben Gamari authored
-
Simon Peyton Jones authored
I missed this on my previous commit, somehow 2cf3ca Allow foralls in instance decls Apologies.
-
Simon Peyton Jones authored
This patch finally makes it possible to have explicit foralls in an instance decl instance forall (a :: *). Eq a => Eq [a] where ... This is useful to allow kind signatures or indeed explicicit kind for-alls; see Trac #11519 I thought it would be really easy, because an instance declaration already contains an actual HsSigType, so all the syntactic baggage is there. But in fact it turned out that instance declarations were kind-checked a little differently, because the body kind of the forall is 'Constraint' rather than '*'. So I fixed that. There a slight kludge (see Note [Body kind of a HsQualTy], but it's still a significant improvement. I also did the usual other round of refactoring, improved a few error messages, tidied up comments etc. The only significant aspect of all that was * Kill mkNakedSpecSigmaTy, mkNakedPhiTy, mkNakedFunTy These function names suggest that they do something complicated, but acutally they do nothing. So I killed them. * Swap the arg order of mkNamedBinder, just so that it is convenient to say 'map (mkNamedBinder Invisible) tvs' * I had to improve isPredTy, to deal with (illegal) types like (Eq a => Eq [a]) => blah See Note [isPeredTy complications] in Type.hs Still to come: user manual documentation for the instance-decl change.
-
Simon Peyton Jones authored
..namely buildImplication. Plus white space in TcDeriv
-
- 07 Feb, 2016 19 commits
-
-
Ben Gamari authored
-
Ben Gamari authored
-
Sergei Trofimovich authored
Noticed by uselex.rb: last_free_capability: [R]: exported from: ./rts/dist/build/Capability.o shutdownCapability: [R]: exported from: ./rts/dist/build/Capability.o Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Sergei Trofimovich authored
Not used since: commit f361281c Author: Simon Marlow <marlowsd@gmail.com> Date: Wed Dec 7 11:32:35 2011 +0000 Do not emit the THREAD_RUNNABLE event; it has no useful semantic content Noticed by uselex.rb: traceEventThreadRunnable: [R]: exported from: ./rts/dist/build/Inlines.o Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Sergei Trofimovich authored
Noticed by uselex.rb: ccs_mutex: [R]: exported from: ./rts/dist/build/Profiling.thr_p_o prof_arena: [R]: exported from: ./rts/dist/build/Profiling.p_o Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Sergei Trofimovich authored
Noticed by uselex.rb: blockedThrowTo: [R]: exported from: ./rts/dist/build/RaiseAsync.o Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Sergei Trofimovich authored
While at is mark 'printRetainer' as 'static'. Noticed by uselex.rb: printRetainer: [R]: exported from: ./rts/dist/build/RetainerSet.p_o traverseAllRetainerSet: [R]: exported from: ./rts/dist/build/RetainerSet.p_o Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Sergei Trofimovich authored
Noticed by uselex.rb: setProgName: [R]: exported from: ./rts/dist/build/RtsFlags.o Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Sergei Trofimovich authored
Noticed by uselex.rb: removeFromRunQueue: [R]: exported from: ./rts/dist/build/Schedule.o Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Sergei Trofimovich authored
Was never used looking at history available in git. While at it marked 'mut_user_time_during_RP' as 'static'. Noticed by uselex.rb: mut_user_time_during_heap_census: [R]: exported from: ./rts/dist/build/Stats.p_o Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Sergei Trofimovich authored
Noticed by uselex.rb: wakeBlockingQueue: [R]: exported from: ./rts/dist/build/Threads.o Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Sergei Trofimovich authored
Use of this helper function was removed in: commit 3c9fc104 Author: Brian Brooks <brooks.brian@gmail.com> Date: Thu Jul 10 02:55:33 2014 -0500 Avoid unnecessary clock_gettime() syscalls in GC stats. Noticed by uselex.rb: getThreadCPUTime: [R]: exported from: ./rts/dist/build/posix/GetTime.p_o Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Sergei Trofimovich authored
Noticed by uselex.rb: copied: [R]: exported from: ./rts/dist/build/sm/GC.o Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Sergei Trofimovich authored
Noticed by uselex.rb: scavenge_mutable_list: [R]: exported from: ./rts/dist/build/sm/Scav.o scavenge_mutable_list1: [R]: exported from: ./rts/dist/build/sm/Scav.thr_o Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Sergei Trofimovich authored
Use of these helper functions was removed by commit 18896fa2 Author: Simon Marlow <marlowsd@gmail.com> Date: Wed Feb 2 15:49:55 2011 +0000 Noticed by uselex.rb: calcLiveBlocks: [R]: exported from: ./rts/dist/build/sm/Storage.o calcLiveWords: [R]: exported from: ./rts/dist/build/sm/Storage.o Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
Ömer Sinan Ağacan authored
Since the whole point of validation is to test the compiler, assertions should be enabled at least for some part of the build. Previously assertions were only enabled (1) in stage 2 compiler (2) when "slow" setting is used. With this patch we enable assertions in stage 1 compiler in all settings, to test them on (1) the compiler itself (2) the libraries, even with the "fast" setting. This will make "fast" setting slower, but the difference should be quite modest - I didn't realize a significant difference in validation times. Reviewers: bgamari, austin, thomie Reviewed By: thomie Differential Revision: https://phabricator.haskell.org/D1890
-
Ben Gamari authored
Fixes #11419
-
Ben Gamari authored
Fixes #11419.
-
Sergei Trofimovich authored
Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-