gkaracha (Georgios Karachalias)
User

Projects

User does not belong to any projects.

User Details

User Since
Nov 27 2015, 7:24 AM (177 w, 4 d)

Recent Activity

May 11 2017

gkaracha added a comment to D3568: pmCheck: Don't generate PmId OccNames from Uniques.

Ben you're right, occname is never actually used. Sorry for my thoughtlessness, if building works, I totally agree with your changes.

May 11 2017, 2:43 AM

Feb 4 2017

gkaracha added a comment to D3064: Don't return empty initial uncovered set for an unsat context.

I don't really think the pattern match checker is the right place to issue an inaccessibility warning so I think this is done for now.

Feb 4 2017, 8:59 AM

Feb 2 2017

gkaracha added a comment to D3064: Don't return empty initial uncovered set for an unsat context.

Ah, also, I forgot. I don't think we can have the same problem with type constraints (maybe with deferred type errors? not sure). Nevertheless, I'd expect the check to behave the-right-way on both. Something along the lines of

Feb 2 2017, 6:14 PM
gkaracha added a comment to D3064: Don't return empty initial uncovered set for an unsat context.

I think this is better than not issuing any warnings as otherwise users will fix this warning and recompile and then have to fix the warnings which we didn't bother to show them. If someone complains later (which I doubt they will) we can implement something else.

Feb 2 2017, 6:01 PM
gkaracha added a comment to D3064: Don't return empty initial uncovered set for an unsat context.

I am not 100% sure this is the right fix but we will see what George says.

Feb 2 2017, 5:40 PM
gkaracha added inline comments to D2105: Exhaustiveness check for EmptyCase (Trac #10746).
Feb 2 2017, 4:13 AM
gkaracha updated the diff for D2105: Exhaustiveness check for EmptyCase (Trac #10746).
  • Make getResult exhaustive
Feb 2 2017, 4:11 AM

Jan 29 2017

gkaracha added inline comments to D2105: Exhaustiveness check for EmptyCase (Trac #10746).
Jan 29 2017, 5:51 AM
gkaracha updated the diff for D2105: Exhaustiveness check for EmptyCase (Trac #10746).

rebase

Jan 29 2017, 5:48 AM

Jan 21 2017

gkaracha added a comment to D2669: Exhaustiveness checking for pattern synonyms.

If I remove the RTS options +RTS -M1G -RTS then it terminates in a reasonable amount of time. Why are these options added when running tests?

Jan 21 2017, 5:56 AM

Jan 20 2017

gkaracha added a comment to D2669: Exhaustiveness checking for pattern synonyms.

There is one test that fails but I feel this is more due to Trac #11822 than my implementation. There shouldn't be a significant effect of these changes when no COMPLETE pragmas are specified but there could be some cost.

Jan 20 2017, 2:27 PM
gkaracha updated subscribers of D2105: Exhaustiveness check for EmptyCase (Trac #10746).
Jan 20 2017, 9:25 AM
gkaracha updated the diff for D2105: Exhaustiveness check for EmptyCase (Trac #10746).
  • Addressed David's comments
Jan 20 2017, 9:17 AM
gkaracha added a comment to D2105: Exhaustiveness check for EmptyCase (Trac #10746).

I'm sorry but this patch feels vastly over-weight for what it does. Large slabs of new code, all to deal with a corner case. It just doesn't smell right at all.

I'm totally lost about why such an elaborate fix is needed. Would you like to explain, starting from scratch?

Jan 20 2017, 9:17 AM

Jan 19 2017

gkaracha retitled D2105: Exhaustiveness check for EmptyCase (Trac #10746) from Address #10746 (check empty case expressions) to Exhaustiveness check for EmptyCase (Trac #10746).
Jan 19 2017, 8:12 PM
gkaracha updated the diff for D2105: Exhaustiveness check for EmptyCase (Trac #10746).
  • Deleted forgotten TODO in test pmcheck/EmptyCase003
  • Added some more integration tests
Jan 19 2017, 8:07 PM

Jan 18 2017

gkaracha added a comment to D2105: Exhaustiveness check for EmptyCase (Trac #10746).
In D2105#87124, @dfeuer wrote:

I don't see any non-trivial newtype wrappers in the test cases. Could you add some? Some examples:

newtype Foo a = Foo (F a)  -- particularly consider cases where F is a GADT, type family, or data family
newtype Bar f = Bar (f X)  -- f may turn out to be a GADT or a data family
newtype Baz (f :: k -> *) (a :: k) = Baz (f a) -- try applying this to a GADT of kind (*->*)->* and a data family of kind *->*, say.
Jan 18 2017, 2:39 PM
gkaracha added a comment to D2105: Exhaustiveness check for EmptyCase (Trac #10746).

I think the patch is now ready for review :)

Jan 18 2017, 8:28 AM

Jan 17 2017

gkaracha updated the diff for D2105: Exhaustiveness check for EmptyCase (Trac #10746).

Exhaustiveness check for EmptyCase (Trac Trac #10746)

Jan 17 2017, 6:30 PM

Jan 5 2017

gkaracha added a comment to D2105: Exhaustiveness check for EmptyCase (Trac #10746).

@gkaracha, is there any chance that this will be finished for 8.2?

Jan 5 2017, 5:38 AM

Dec 21 2016

gkaracha added a comment to D2669: Exhaustiveness checking for pattern synonyms.

George, is an *inaccessible RHS* a pattern which is redundant but can't be removed without affecting strictness?

Dec 21 2016, 7:27 AM

Dec 12 2016

gkaracha added a comment to D2669: Exhaustiveness checking for pattern synonyms.

I disagree with this definition. A complete match is a set of patterns such that if a user writes a function which matches on all the patterns, the function is total. One way to get a complete set of patterns is to look at the type of the argument and find all its data constructors but that isn't the only way.

Dec 12 2016, 4:37 AM

Dec 9 2016

gkaracha added a comment to D2669: Exhaustiveness checking for pattern synonyms.

The problem with completesig10 is that it is the first match which is redundant. There seems to be an assumption somewhere in the checker that allCompleteMatches returns the same result for each constructor with the same parent. Before I made these changes, this was of course true but now this invariant is violated.

I haven't investigated much as I thought that maybe @gkaracha could point me to the right place where this invariant is used.

Dec 9 2016, 7:13 AM

Dec 8 2016

gkaracha added a comment to D2669: Exhaustiveness checking for pattern synonyms.

The problem with completesig10 is that it is the first match which is redundant. There seems to be an assumption somewhere in the checker that allCompleteMatches returns the same result for each constructor with the same parent. Before I made these changes, this was of course true but now this invariant is violated.

I haven't investigated much as I thought that maybe @gkaracha could point me to the right place where this invariant is used.

Dec 8 2016, 10:56 AM
gkaracha added a comment to D2669: Exhaustiveness checking for pattern synonyms.

@gkaracha I just added the nests you suggested if you want to look at the output.

Dec 8 2016, 7:55 AM

Dec 6 2016

gkaracha added a comment to D2669: Exhaustiveness checking for pattern synonyms.

I would like to see a test case with an incomplete partial function, that can be completed with more than one COMPLETE group, to keep track of changes to the error message for that case.

Indeed, I'd like that too. Actually, now that you have finished most of the patch I'll read it thoroughly but I also would like to try out some examples myself. Could you tell me how to build the patch?

@gkaracha, are you implicitly volunteering to add a few more test cases, once you managed to build the branch, or are you merely indicating that you would like to see @mpickering to add them to this DR?

Dec 6 2016, 5:01 PM

Nov 24 2016

gkaracha added a comment to D2669: Exhaustiveness checking for pattern synonyms.

Running arc patch D2669 will apply this and its parent patch, then you should be able to build normally.

Nov 24 2016, 8:52 AM

Nov 23 2016

gkaracha added a comment to D2669: Exhaustiveness checking for pattern synonyms.

I would like to see a test case with an incomplete partial function, that can be completed with more than one COMPLETE group, to keep track of changes to the error message for that case.

Nov 23 2016, 9:28 AM

Nov 15 2016

gkaracha added a comment to D2669: Exhaustiveness checking for pattern synonyms.

Nice work @mpickering! The definitions of Covered, Diverged and PartialResult, as well as turning PmResult into a separate data type make the code much more readable. Also, some tracing was needed for the checker, thanks for -ddump-ec-trace too. Concerning the things to be resolved:

Nov 15 2016, 5:36 AM

Apr 25 2016

gkaracha added a comment to D2105: Exhaustiveness check for EmptyCase (Trac #10746).

Still a wip implementation. I can make it work, but I can not find an elegant way to do so. For this task we seem to need to

Apr 25 2016, 9:36 AM
gkaracha updated the diff for D2105: Exhaustiveness check for EmptyCase (Trac #10746).
  • Reduce type families and newtypes
Apr 25 2016, 9:34 AM

Apr 13 2016

gkaracha added a comment to D2105: Exhaustiveness check for EmptyCase (Trac #10746).
In D2105#61458, @dfeuer wrote:

Argh! I forgot about families! I actually think you should reduce them, even at risk of falling down an infinite loop or otherwise exploding. Without this, empty case is completely useless for data families; there is no way to talk about results of data families except by applying them. I don't think the situation is necessarily quite as grim for type families, but I think they should be consistent. When I write an empty case, I'm very explicitly telling GHC that I want it to verify that there are no possibilities. If I didn't care all that much, I'd have written error "The impossible happened!" or some such instead. If the family gets stuck, I want the usual non-exhaustive warning.

Apr 13 2016, 6:19 AM

Apr 12 2016

gkaracha retitled D2105: Exhaustiveness check for EmptyCase (Trac #10746) from to Address #10746 (check empty case expressions).
Apr 12 2016, 9:46 AM

Apr 9 2016

gkaracha added a comment to D2095: Reduce default for -fmax-pmcheck-iterations from 1e7 to 1e6.

Does this look alright to you, George?

Apr 9 2016, 6:36 AM

Feb 25 2016

gkaracha abandoned D1910: (One way to) address #8710.

Picked D1920 so we can safely abandon this.

Feb 25 2016, 2:52 PM

Feb 16 2016

gkaracha added a comment to D1921: Testsuite: don't use only_compiler_types, assume ghc.
In D1921#56392, @thomie wrote:

@gkaracha is this ok with you, or did you add those only_compiler_types calls for a reason?

Feb 16 2016, 12:52 AM

Feb 15 2016

gkaracha retitled D1920: (Alternative way to) address #8710 from to (Alternative way to) address #8710.
Feb 15 2016, 4:40 PM
gkaracha updated the diff for D1910: (One way to) address #8710.

Address Simon's comments

Feb 15 2016, 4:39 PM

Feb 13 2016

gkaracha retitled D1910: (One way to) address #8710 from to (One way to) address #8710.
Feb 13 2016, 4:10 PM

Feb 3 2016

gkaracha added a comment to D1795: Overhaul the Overhauled Pattern Match Checker.

Looks good, George. I can go ahead and merge this tomorrow. Do you think you could open another diff adding documentation for -fmax-pmcheck-iterations?

Feb 3 2016, 3:16 PM
gkaracha updated the diff for D1795: Overhaul the Overhauled Pattern Match Checker.
  • Overhaul the Overhauled Pattern Match Checker
  • Comments from Ben (document -fmax-pmcheck-iterations)
Feb 3 2016, 3:08 PM

Feb 2 2016

gkaracha added a comment to D1795: Overhaul the Overhauled Pattern Match Checker.

It looks like the only validation issue is due to the a remarkable decrease in allocations in compiling the pattern-heavy T783 testcase,

Deviation   T783(normal) bytes allocated:      -56.9 %
Feb 2 2016, 8:08 AM

Feb 1 2016

gkaracha added a comment to D1795: Overhaul the Overhauled Pattern Match Checker.

Alternatively, if you think this is approaching completion I can start a review and run the validations manually.

No, it is not ready yet. Operationally I think it's almost done but the readability of the code is not good enough (and also comments are out-of-sync) to be merged so it would be a waste of your time to review it now. I just updated the diff for harbomaster to check it, when the patch is done I will let you know!

Feb 1 2016, 6:57 AM
gkaracha updated D1795: Overhaul the Overhauled Pattern Match Checker.
Feb 1 2016, 6:48 AM
gkaracha updated D1795: Overhaul the Overhauled Pattern Match Checker.
Feb 1 2016, 6:47 AM
gkaracha updated the diff for D1795: Overhaul the Overhauled Pattern Match Checker.

Some more fixes:

Feb 1 2016, 6:45 AM
gkaracha committed rGHCb5df2cc6cf2a: Overhaul the Overhauled Pattern Match Checker (authored by gkaracha).
Overhaul the Overhauled Pattern Match Checker
Feb 1 2016, 6:27 AM
gkaracha committed rGHC09505c2697e6: Some cleanup (authored by gkaracha).
Some cleanup
Feb 1 2016, 12:53 AM
gkaracha committed rGHC7afa6e5c1e99: Fit everything in 80 columns (authored by gkaracha).
Fit everything in 80 columns
Feb 1 2016, 12:53 AM

Jan 29 2016

gkaracha committed rGHCcc0533c5a50b: Simon says: Do not export dsPmWarn (authored by gkaracha).
Simon says: Do not export dsPmWarn
Jan 29 2016, 10:18 AM
gkaracha committed rGHC4a192a7a1e0c: Store a Name instead of an Id in PmExprVar (authored by gkaracha).
Store a Name instead of an Id in PmExprVar
Jan 29 2016, 7:03 AM

Jan 28 2016

gkaracha committed rGHC3b6f7c868d9e: Mainly some top-level comments (authored by gkaracha).
Mainly some top-level comments
Jan 28 2016, 8:56 AM
gkaracha committed rGHC30a4631a4796: Overhaul the Overhauled Pattern Match Checker (authored by gkaracha).
Overhaul the Overhauled Pattern Match Checker
Jan 28 2016, 8:56 AM

Jan 24 2016

gkaracha added a comment to D1795: Overhaul the Overhauled Pattern Match Checker.

@gkaracha, note that sadly Harbormaster is down at the moment but I'll try to fire off a build once it's working again.

Jan 24 2016, 12:20 PM
gkaracha updated the diff for D1795: Overhaul the Overhauled Pattern Match Checker.
  • Overhaul the Overhauled Pattern Match Checker
Jan 24 2016, 11:59 AM
gkaracha set the repository for D1795: Overhaul the Overhauled Pattern Match Checker to rGHC Glasgow Haskell Compiler.
Jan 24 2016, 11:39 AM
gkaracha updated the diff for D1795: Overhaul the Overhauled Pattern Match Checker.
Jan 24 2016, 11:37 AM
gkaracha committed rGHCbe3e867db822: Overhaul the Overhauled Pattern Match Checker (authored by gkaracha).
Overhaul the Overhauled Pattern Match Checker
Jan 24 2016, 11:30 AM

Jan 18 2016

gkaracha updated the diff for D1795: Overhaul the Overhauled Pattern Match Checker.
  • test T11195: fit everything in 80 columns
Jan 18 2016, 9:59 AM
gkaracha added a comment to D1795: Overhaul the Overhauled Pattern Match Checker.

George, can you summarise the effects of this patch? (Hoped for or actual.)

Jan 18 2016, 9:54 AM
gkaracha added a comment to D1795: Overhaul the Overhauled Pattern Match Checker.

The code is not ready for review yet, I just want this to be validated by harbomaster at the moment. Major TODOs for the next couple of days:

Jan 18 2016, 8:06 AM
gkaracha retitled D1795: Overhaul the Overhauled Pattern Match Checker from to Overhaul the Overhauled Pattern Match Checker.
Jan 18 2016, 8:00 AM
gkaracha committed rGHCcd12c8dc2cbd: Overhaul the Overhauled Pattern Match Checker (authored by gkaracha).
Overhaul the Overhauled Pattern Match Checker
Jan 18 2016, 7:14 AM

Jan 5 2016

gkaracha retitled D1737: Remove -Wtoo-many-guards from default flags (fixes #11316) from to Remove -Wtoo-many-guards from default flags (fixes #11316).
Jan 5 2016, 8:33 AM

Jan 4 2016

gkaracha committed rGHCd6d6f2e200f7: Added some basic space and time limits for T11276 (3sec, 1GB) (authored by gkaracha).
Added some basic space and time limits for T11276 (3sec, 1GB)
Jan 4 2016, 3:20 AM
gkaracha committed rGHC80d319dfbfca: Avoid generating guards for CoPats if possible (Addresses #11276) (authored by gkaracha).
Avoid generating guards for CoPats if possible (Addresses #11276)
Jan 4 2016, 3:19 AM

Jan 3 2016

gkaracha updated the diff for D1729: Avoid generating guards for CoPats if possible (Addresses #11276).
  • Added some basic space and time limits for T11276 (3sec, 1GB)
Jan 3 2016, 7:18 PM
gkaracha added inline comments to D1729: Avoid generating guards for CoPats if possible (Addresses #11276).
Jan 3 2016, 4:49 PM
gkaracha retitled D1729: Avoid generating guards for CoPats if possible (Addresses #11276) from to Avoid generating guards for CoPats if possible (Addresses #11276).
Jan 3 2016, 4:19 PM
gkaracha committed rGHC42c5a13d6c66: Avoid generating guards for CoPats if possible (Addresses #11276) (authored by gkaracha).
Avoid generating guards for CoPats if possible (Addresses #11276)
Jan 3 2016, 4:18 PM
gkaracha committed rGHC1a2a75471bb0: Avoid generating guards for CoPats if possible (Addresses #11276) (authored by gkaracha).
Avoid generating guards for CoPats if possible (Addresses #11276)
Jan 3 2016, 4:07 PM

Dec 29 2015

gkaracha updated the diff for D1717: Address #11245: Ensure the non-matched list is always non-empty.
Dec 29 2015, 3:37 PM
gkaracha added a comment to D1717: Address #11245: Ensure the non-matched list is always non-empty.

Hmm, perhaps just "guards don't cover entire pattern space"? It's a bit jargon-y but I don't think so much so that casual users could infer what is meant.

Dec 29 2015, 2:51 PM
gkaracha committed rGHCf8cd796f43f8: Make use of field `pm_lit_not` (to avoid not-used warning) (authored by gkaracha).
Make use of field `pm_lit_not` (to avoid not-used warning)
Dec 29 2015, 11:10 AM
gkaracha committed rGHCc2c4790cccf6: Introduce negative patterns for literals (addresses #11303) (authored by gkaracha).
Introduce negative patterns for literals (addresses #11303)
Dec 29 2015, 11:10 AM
gkaracha added a comment to D1717: Address #11245: Ensure the non-matched list is always non-empty.

The "incomplete guards" language is a bit terse. Do you mean that the guards don't cover the entire pattern space?

Dec 29 2015, 8:18 AM
gkaracha updated the diff for D1716: Introduce negative patterns for literals (addresses #11303).
  • Make use of field pm_lit_not (to avoid not-used warning)
Dec 29 2015, 8:08 AM
gkaracha retitled D1717: Address #11245: Ensure the non-matched list is always non-empty from to Address #11245: Ensure the non-matched list is always non-empty.
Dec 29 2015, 7:49 AM
gkaracha retitled D1716: Introduce negative patterns for literals (addresses #11303) from to Introduce negative patterns for literals (addresses #11303).
Dec 29 2015, 7:05 AM
gkaracha committed rGHC80e28111389c: Introduce negative patterns for literals (addresses #11303) (authored by gkaracha).
Introduce negative patterns for literals (addresses #11303)
Dec 29 2015, 6:59 AM

Dec 26 2015

gkaracha updated the diff for D1676: Adding flags: -ffull-guard-reasoning and too-many-guards.

Up-to-date with master + Squash recent commits

Dec 26 2015, 6:29 PM
gkaracha committed rGHC9f9dd57d9ff2: Up-to-date with master + Squash recent commits (authored by gkaracha).
Up-to-date with master + Squash recent commits
Dec 26 2015, 1:42 PM
gkaracha updated the diff for D1676: Adding flags: -ffull-guard-reasoning and too-many-guards.
  • Added CPP pragma for test perf/compiler/T783.hs
  • Improved message for -W(no-)too-many-guards
  • Some documentation about -Wtoo-many-guards and -ffull-guard-reasoning
Dec 26 2015, 11:09 AM
gkaracha committed rGHCe8127508f0c8: Some documentation about -Wtoo-many-guards and -ffull-guard-reasoning (authored by gkaracha).
Some documentation about -Wtoo-many-guards and -ffull-guard-reasoning
Dec 26 2015, 11:08 AM
gkaracha committed rGHC3a42acef70c6: Improved message for -W(no-)too-many-guards (authored by gkaracha).
Improved message for -W(no-)too-many-guards
Dec 26 2015, 11:08 AM
gkaracha committed rGHC3c6e8d5142d7: Added CPP pragma for test perf/compiler/T783.hs (authored by gkaracha).
Added CPP pragma for test perf/compiler/T783.hs
Dec 26 2015, 11:08 AM

Dec 21 2015

gkaracha updated the diff for D1676: Adding flags: -ffull-guard-reasoning and too-many-guards.
  • Add -Wno-too-many-guards for T783
Dec 21 2015, 8:35 AM
gkaracha committed rGHCbcba1aa6205c: Add -Wno-too-many-guards for T783 (authored by gkaracha).
Add -Wno-too-many-guards for T783
Dec 21 2015, 8:34 AM
gkaracha updated the diff for D1676: Adding flags: -ffull-guard-reasoning and too-many-guards.
  • Make hlint happy + address thomie's comments
Dec 21 2015, 4:57 AM
gkaracha committed rGHC3df7e1aa43ff: Make hlint happy + address thomie's comments (authored by gkaracha).
Make hlint happy + address thomie's comments
Dec 21 2015, 4:56 AM
gkaracha committed rGHC1ed992d03456: Added a new flag (-guard-reasoning={simple,try,try-quiet,do}) (authored by gkaracha).
Added a new flag (-guard-reasoning={simple,try,try-quiet,do})
Dec 21 2015, 4:56 AM
gkaracha added a comment to D1676: Adding flags: -ffull-guard-reasoning and too-many-guards.

The description doesn't seem to match the patch? It seems to implement thomie's later suggestion I think.

Dec 21 2015, 4:06 AM
gkaracha retitled D1676: Adding flags: -ffull-guard-reasoning and too-many-guards from Added a new flag (-guard-reasoning={simple,try,try-quiet,do}) to Adding flags: -ffull-guard-reasoning and too-many-guards.
Dec 21 2015, 4:04 AM

Dec 20 2015

gkaracha retitled D1676: Adding flags: -ffull-guard-reasoning and too-many-guards from to Added a new flag (-guard-reasoning={simple,try,try-quiet,do}).
Dec 20 2015, 7:26 PM
gkaracha committed rGHC351bbfd7972f: Change the flags + eliminate some warnings (authored by gkaracha).
Change the flags + eliminate some warnings
Dec 20 2015, 6:12 PM
gkaracha committed rGHC594f5f58d6a7: Turn datatype `PmPat' into a GADT (authored by gkaracha).
Turn datatype `PmPat' into a GADT
Dec 20 2015, 6:12 PM
gkaracha committed rGHCf86de30aedc0: Added a new flag (-guard-reasoning={simple,try,try-quiet,do}) (authored by gkaracha).
Added a new flag (-guard-reasoning={simple,try,try-quiet,do})
Dec 20 2015, 6:12 PM

Dec 19 2015

gkaracha committed rGHC7e216050ce03: Added a new flag (-guard-reasoning={simple,try,try-quiet,do}) (authored by gkaracha).
Added a new flag (-guard-reasoning={simple,try,try-quiet,do})
Dec 19 2015, 10:03 AM

Dec 4 2015

gkaracha committed rGHC406444b5f417: pmcheck: Comments about undecidability of literal equality (authored by gkaracha).
pmcheck: Comments about undecidability of literal equality
Dec 4 2015, 6:55 PM
gkaracha committed rGHC81cf20090262: pmcheck: Comments about term equality representation (authored by gkaracha).
pmcheck: Comments about term equality representation
Dec 4 2015, 6:55 PM