tdammers (Tobias Dammers)Administrator
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 16 2017, 8:24 AM (49 w, 1 d)
Roles
Administrator

Recent Activity

Fri, Sep 14

tdammers created D5150: Fix #14880..
Fri, Sep 14, 6:45 AM

Thu, Sep 13

tdammers added a comment to D5147: Close over kinds exactly once per var (#14880).

Assembled a Note from various snippets from the Trac issue and surrounding discussion. Feel free to edit rigorously.

Thu, Sep 13, 3:24 PM
tdammers updated the diff for D5147: Close over kinds exactly once per var (#14880).
  • Add Note [Closing over free variable kinds]
Thu, Sep 13, 3:13 PM
tdammers updated the diff for D5147: Close over kinds exactly once per var (#14880).
  • Add Note [Closing over free variable kinds]
Thu, Sep 13, 3:09 PM
tdammers added a comment to D5147: Close over kinds exactly once per var (#14880).

We'll need a big Note about all this

Thu, Sep 13, 3:07 PM
tdammers updated the diff for D5147: Close over kinds exactly once per var (#14880).

Fixup

Thu, Sep 13, 2:12 PM
tdammers updated the diff for D5147: Close over kinds exactly once per var (#14880).

Use extendVarSet, not unionFV

Thu, Sep 13, 9:19 AM
tdammers added a comment to D5147: Close over kinds exactly once per var (#14880).

Use Interesting Function

But you did not take advantage of my suggestion

| otherwise = tyCoFVsOfType (tyVarKind v)) f emptyVarSet (v:acc_list, extendVarSet acc_set v)

unitFV will just duplicate three tests you have already made!

Thu, Sep 13, 9:19 AM
tdammers updated the diff for D5147: Close over kinds exactly once per var (#14880).

Use Interesting Function

Thu, Sep 13, 6:42 AM
tdammers added inline comments to D5147: Close over kinds exactly once per var (#14880).
Thu, Sep 13, 6:42 AM
tdammers created D5147: Close over kinds exactly once per var (#14880).
Thu, Sep 13, 3:44 AM

Mon, Sep 10

tdammers updated the diff for D5141: Use an accumulator version of tyCoVarsOfType.
  • Bugfix
Mon, Sep 10, 3:47 PM
tdammers added inline comments to D5141: Use an accumulator version of tyCoVarsOfType.
Mon, Sep 10, 1:56 PM
tdammers created D5141: Use an accumulator version of tyCoVarsOfType.
Mon, Sep 10, 10:40 AM

Fri, Sep 7

tdammers added a comment to D5137: Honor INLINE on 0-arity bindings (#15578).

OK, so I added test3 from the ticket, which probably reflects the problem most accurately. I don't think adding more of the test cases would add much.

Fri, Sep 7, 5:27 PM
tdammers updated the diff for D5137: Honor INLINE on 0-arity bindings (#15578).
Fri, Sep 7, 5:21 PM
tdammers updated the diff for D5137: Honor INLINE on 0-arity bindings (#15578).
Fri, Sep 7, 1:55 PM
tdammers created D5137: Honor INLINE on 0-arity bindings (#15578).
Fri, Sep 7, 6:23 AM

Wed, Aug 29

tdammers added a comment to D5107: #15363 Do some cleaning up of the testsuite driver.

I suggest continuing the discussion on Trac 15363 rather than here, if only to preserve it for future generations.

Wed, Aug 29, 3:47 AM

Tue, Aug 28

tdammers requested changes to D5086: Use -O2 as default flag for stage1..

That build failure is strange. Apparently enabling -O2 on stage1 triggers a bug that doesn't surface on Linux. gcc vs. clang, possibly?

Tue, Aug 28, 5:39 AM
tdammers accepted D5086: Use -O2 as default flag for stage1..

Ideally I'd like to see this tested on more machines and platforms, but if those timings are anywhere near accurate, I'd expect those to match too.

Tue, Aug 28, 3:52 AM
tdammers added inline comments to D5093: Compiler panic on invalid syntax (unterminated pragma).
Tue, Aug 28, 3:25 AM
tdammers updated subscribers of D5110: Implement minimumOn, maximumOn to mirror sortOn (#15566).

These look useful, but I'm not sure how reluctant we are to add more things to base just like that.

Tue, Aug 28, 3:13 AM
tdammers accepted D5106: make iToBase62's inner loop stricter in one of its arguments.

I agree that this should be properly solved eventually. Workaround looks fine though.

Tue, Aug 28, 2:55 AM
tdammers accepted D5111: Remove dead code for commandline parsing.
Tue, Aug 28, 2:52 AM

Mon, Aug 27

tdammers requested changes to D5109: Fix a constant folding rule.

Could you maybe add a test or two? You already have an example program that would highlight a regression.

Mon, Aug 27, 10:53 AM
tdammers requested changes to D5107: #15363 Do some cleaning up of the testsuite driver.

I have trouble understanding what this would buy us. 452 lines of Windows-specific code are a liability (most GHC devs are not on Windows, and aren't keen on maintaining nontrivial Windows code), so the benefit would have to be substantial to make it worthwhile.

Mon, Aug 27, 10:53 AM
tdammers requested changes to D4953: Support for deprecating exports.
Mon, Aug 27, 9:57 AM

Jul 9 2018

tdammers added a comment to D4931: Fixes an issue with deprecated symbols that are explicitly imported not throwing a warning.

I've looked a bit deeper, and it turns out that the "bug" isn't really a bug - essentially what bytestring is doing here is re-exporting findSubstring from Data.ByteString from Data.ByteString.Char8. More details in the ticket (Trac #15337).

Jul 9 2018, 9:31 AM
tdammers accepted D4924: Add a strict version of foldMap to Foldable.
Jul 9 2018, 7:14 AM
tdammers accepted D4945: SAT: Fix hacky name shadowing.
Jul 9 2018, 6:35 AM
tdammers added a comment to D4931: Fixes an issue with deprecated symbols that are explicitly imported not throwing a warning.

Well, here's the relevant bit from the build log:

Jul 9 2018, 6:30 AM

Jul 5 2018

tdammers added a comment to D4915: split-obj: disable split-objects on Windows..

Yes, I agree that this is the right way forward. This also means that we can simply remove split-objs, since Windows is AFAIK the only platform that still used it.

Jul 5 2018, 2:26 AM
tdammers accepted D4920: Fix #15331 with careful blasts of parenthesizeHsType.
Jul 5 2018, 2:24 AM
tdammers requested changes to D4930: When -odir is specified, put the object file of a C-source file into the top level odir directory (#14025).

Looks like the build fails because it can't find some .o files. Might want to look into that.

Jul 5 2018, 2:20 AM

Jul 4 2018

tdammers added a comment to D4847: UniqFM: Use foldl' instead of fold.

Maybe check out how this relates to D4929? There doesn't seem to be any overlap between the two patches, but D4929 puts foldl' in GHC.Prelude, which make the Data.List import redundant here.

Jul 4 2018, 3:22 PM
tdammers requested changes to D4929: Replace most occurences of foldl with foldl'..

Would it be possible to see the performance improvements reflected in the test suite somewhere? E.g., by adding a test that compiles a program that would benefit a lot from this in terms of compilation time?

Jul 4 2018, 10:59 AM
tdammers requested changes to D4931: Fixes an issue with deprecated symbols that are explicitly imported not throwing a warning.
  • Please fix the parser error / build failure
  • A more descriptive commit message would be great
Jul 4 2018, 10:43 AM

Jun 21 2018

tdammers requested changes to D4881: Rename literal constructors.

Apart from the stylistic remarks; I wonder whether this change would pull its weight. The Mach- prefix doesn't seem entirely outrageous to me (after all, these are things that are supposed to be "close to the metal" or "in machine format"), and changing them has a bit of an impact wrt future patches, merging, etc. But I really can't judge which way the balance would tip.

Jun 21 2018, 10:47 AM
tdammers requested changes to D4872: Fix space leaks.

What about those failing CI tests? I can't make perfect sense of it, but IIUC, one test now allocates 16% less (which is to be expected, I think?), while another test now fails.

Jun 21 2018, 10:26 AM

Jun 18 2018

tdammers retitled D4868: Rewrite fasta in more idiomatic Haskell from Summary: Rewrite fasta in more idiomatic Haskell to Rewrite fasta in more idiomatic Haskell.
Jun 18 2018, 6:59 AM
tdammers created D4868: Rewrite fasta in more idiomatic Haskell.
Jun 18 2018, 6:42 AM

Jun 13 2018

tdammers added a comment to D4806: --show-iface: Always qualify names.

I think this deserves a proper discussion in a Trac issue, with some background information and concrete motivating examples.

Jun 13 2018, 4:54 AM
tdammers added a comment to D4820: Inline the default `enumFromTo` and `enumFromThenTo` methods in `Enum` typeclass..

Thanks for doing this!

The lack of INLINE breaks stream fusion, leading to degeneration in performance for Int32, Int64 and similar types

Do you understand *why* the lack of INLINE breaks fusion. It's be really good to give a little example to illustrate the steps, and where they break. Otherwise it's too much like alchemy... "try it and see".

Also could you add this info in a Note? Otherwise someone in 5 years time might wonder what those INLINE pragmas are doing, and remove them. (Yes, if they are careful enough they could do a git-annotate, but it's not so clear.)

Jun 13 2018, 4:52 AM
tdammers added a comment to D4827: Make Control.Exception.throw levity polymorphic..

I am a bit puzzled by the CI failure. I don't get why the runner cannot run ./validate.

Did I mess something up here?

Jun 13 2018, 3:18 AM
tdammers requested changes to D4831: Do not skip conc004 in GHCi way.

Is there some ticket associated with this? Do we know the context in which it allocated too much? *Someone* has clearly run into this in the past, and before undoing the "fix", I'd like some assertion that the problem has actually gone away, rather than us just not running it in the circumstances that trigger it.

Jun 13 2018, 3:06 AM
tdammers accepted D4838: testsuite: Fix T4442 on i386.
Jun 13 2018, 2:28 AM
tdammers accepted D4830: Disable `-fdefer-out-of-scope-variables` in ghci..

Fantastic, thanks a lot.

Jun 13 2018, 2:03 AM

Jun 12 2018

tdammers abandoned D4833: Disable error deferring in interactive statements.

Abandoning in favor of D4830.

Jun 12 2018, 10:16 AM
tdammers requested changes to D4830: Disable `-fdefer-out-of-scope-variables` in ghci..

This solves the same problem as D4833, but seems like a more elegant solution, so I suggest we roll with this patch instead of mine.

Jun 12 2018, 10:16 AM
tdammers added a comment to D4833: Disable error deferring in interactive statements.

@tdammers We have already disabled -fdefer-type-errors and -fdefer-typed-holes in GHCi (by Phab:D1527), see https://github.com/ghc/ghc/blob/master/compiler/typecheck/TcRnDriver.hs#L2070. I opened a ticket Trac #15259 yesterday to disable -fdefer-out-of-scope-variables as well, and fixed it by Phab:D4830. After doing that, the program given in Trac #14963 prints the result correctly and doesn't panic.

Jun 12 2018, 10:16 AM
tdammers added a comment to D4833: Disable error deferring in interactive statements.

I think it's ok to allow -fdefer-type-errors in files to be load to ghci, which wouldn't cause a panic and is very helpful to develop and try partial finished programs. We only need to disable -fdefer-type-errors (as well as the other two -fdefer) to interactive inputs in ghci.

Jun 12 2018, 9:51 AM
tdammers updated the diff for D4833: Disable error deferring in interactive statements.
  • Disable error deferring in interactive statements
  • Documentation
  • Test for Trac #14963 workaround
  • Updated test output
Jun 12 2018, 9:51 AM
tdammers updated the diff for D4833: Disable error deferring in interactive statements.
  • Override interactive dynflags, not session
  • Updated test output
Jun 12 2018, 9:51 AM
tdammers created D4833: Disable error deferring in interactive statements.
Jun 12 2018, 5:44 AM

May 31 2018

tdammers added inline comments to D4755: Conservatively estimate levity in worker/wrapper.
May 31 2018, 3:39 AM
tdammers requested changes to D4755: Conservatively estimate levity in worker/wrapper.
May 31 2018, 3:39 AM
tdammers added a comment to D4740: Check if both branches of an Cmm if have the same target..

Your test is failing on OS X; seems to be a difference in how the wc implementations format their output - the Linux one left-aligns the 0, while the OS X one pads it with spaces. A not very elegant, but effective, solution would be to throw a quick sed job into the pipeling, something like | sed -e 's/^\s*//' maybe?

May 31 2018, 2:25 AM

May 30 2018

tdammers requested changes to D4740: Check if both branches of an Cmm if have the same target..

Might be confusing for an unsuspecting reader to read hints about swapping the branches of a conditional, and then seeing code that also reduces conditionals down to just the plain branches.

May 30 2018, 10:50 AM
tdammers accepted D4742: Unpack and simplify QSem.
May 30 2018, 10:46 AM
tdammers updated the diff for D4744: Turn "inaccessible code" error into a warning.

Updated to reflect changed output in tests, and adding -Werror to tests that should fail.

May 30 2018, 9:45 AM
tdammers added inline comments to D4751: Add some comments about interruptibility for Chan.
May 30 2018, 9:43 AM
tdammers requested changes to D4751: Add some comments about interruptibility for Chan.
May 30 2018, 9:43 AM

May 29 2018

tdammers requested changes to D4746: Fix unparseable pretty-printing of promoted data cons.

Marking as "request changes", because this is clearly WIP.

May 29 2018, 2:57 AM
tdammers added a comment to D4745: [testing] testsuite: Accept new output.

Do we know what causes these? Shouldn't we have a ticket about this?

May 29 2018, 2:29 AM

May 28 2018

tdammers added inline comments to D4739: Fix "redundant constraint" warnings when meets functional dependencies.
May 28 2018, 8:48 AM
tdammers added inline comments to D4742: Unpack and simplify QSem.
May 28 2018, 8:35 AM
tdammers created D4744: Turn "inaccessible code" error into a warning.
May 28 2018, 3:05 AM
tdammers updated the diff for D4729: Handle abi-depends correctly in ghc-pkg.

ghc-pkg: properly recompute abi-depends for updated packages.

May 28 2018, 2:28 AM

May 24 2018

tdammers added inline comments to D4729: Handle abi-depends correctly in ghc-pkg.
May 24 2018, 1:17 PM
tdammers created D4729: Handle abi-depends correctly in ghc-pkg.
May 24 2018, 6:29 AM

May 17 2018

tdammers added a comment to D4637: Merge FUN_STATIC closure with its SRT.

Ömer suggested that this build error may be related: https://gist.github.com/tdammers/259593ba48374fa1b3e0885ada646d08

May 17 2018, 3:30 AM

Apr 30 2018

tdammers updated the diff for D4635: Fix performance regressions from #14737.

Fix as per Trac #15019.

Apr 30 2018, 4:36 AM
tdammers added inline comments to D4635: Fix performance regressions from #14737.
Apr 30 2018, 2:36 AM

Apr 26 2018

tdammers requested review of D4635: Fix performance regressions from #14737.
Apr 26 2018, 11:12 AM

Apr 20 2018

tdammers updated the diff for D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.
  • Add SCCs to hunt down Trac #14683
  • Add regression test (Grammar.hs from Trac #14683)
  • Improve coercionKind(Role) perfomance
  • Cache coercion roles in NthCo
Apr 20 2018, 4:01 AM

Apr 19 2018

tdammers updated the summary of D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.
Apr 19 2018, 9:28 AM

Apr 16 2018

tdammers requested review of D4568: Remove unnecessary check in simplCast.
Apr 16 2018, 2:54 AM

Apr 12 2018

tdammers updated the diff for D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.
  • Added SCCs to hunt down Trac #14683
  • Improve coercionKind(Role) perfomance
  • Cache coercion roles in NthCo
Apr 12 2018, 10:43 AM

Apr 11 2018

tdammers updated the diff for D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.
  • Bump perf test targets
Apr 11 2018, 6:52 AM

Apr 5 2018

tdammers added a comment to D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.

Separate patch with "debug only" improvements in D4570.

Apr 5 2018, 6:44 AM
tdammers updated the diff for D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.
  • Fix bug in invocation of decomposeFunCo
Apr 5 2018, 6:43 AM
tdammers added a comment to D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.

I have fixed the bug and pushed to wip/tdammers/D4394

Apr 5 2018, 6:24 AM
tdammers updated the summary of D4395: Discard reflexive casts during Simplify.
Apr 5 2018, 5:13 AM
tdammers updated the diff for D4395: Discard reflexive casts during Simplify.

Rewrote commit message & implemented suggested change.

Apr 5 2018, 5:12 AM
tdammers abandoned D4569: Simplify simplCast.
Apr 5 2018, 5:12 AM

Apr 3 2018

tdammers added a comment to D4395: Discard reflexive casts during Simplify.

@simonpj, could you quickly review & comment on the updated summary (identical to commit message)?

Apr 3 2018, 10:30 AM
tdammers updated the summary of D4395: Discard reflexive casts during Simplify.
Apr 3 2018, 10:29 AM
tdammers added a comment to D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.

Oh, and BTW, this is D4394 and has its own branch, wip/tdammers/D4394. The error can be reproduced by running validate on this branch.

Apr 3 2018, 8:20 AM
tdammers added a comment to D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.

I suppose I can check out wip/tdammers/D4395-new, build it, and try to fix it, but in what way does it not work?

Apr 3 2018, 8:17 AM
tdammers added a comment to D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.

Apparently, the way I tried to fix rebasing-induced errors wasn't correct, but unfortunately I don't understand the code well enough to see where I went wrong. Maybe @goldfire or @simonpj could take a peek?

Apr 3 2018, 5:51 AM
tdammers updated the diff for D4395: Discard reflexive casts during Simplify.

Discard reflexive casts during Simplify

Apr 3 2018, 5:50 AM

Mar 30 2018

tdammers updated the diff for D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.
  • Fix rebasing-induced failures
Mar 30 2018, 6:23 AM
tdammers added a comment to D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.

More specifically, I broke something, but e3dbb44f53b2f9403d20d84e27f187062755a089 also did - that commit (currently in master) removes the nextRole export from TcType.hs, which this patch relies on.

Mar 30 2018, 2:47 AM

Mar 29 2018

tdammers added a comment to D4395: Discard reflexive casts during Simplify.

Wait a tick. Before your most recent commits, did addCoerce check isReflexiveCo twice? That's ridiculous (and my fault, I'm sure). That could be the reason for the slowdown.

Mar 29 2018, 7:41 AM
tdammers added a comment to D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.

Looks like I broke something when rebasing onto master.

Mar 29 2018, 7:38 AM

Mar 27 2018

tdammers updated the diff for D4394: Caching coercion roles in NthCo and coercionKindsRole refactoring.
  • Fixed NthCo Note (discussion in D4385)
  • Documented invariant on cached roles
  • Tighten cached role in NthCo
  • NthCo handling, assertions and documentation improvements
  • Fixes to Coercion.hs
  • Removed dead code
  • Refactored setNominalRole_maybe to avoid dragging role through recursion
  • Another fix as per D4394
  • Fixed unused variables
  • Refactor mkCoCast
  • Fix test to reflect changed NthCo ctor
  • Increased allocation limit for T5321 on OS X
  • Fix rebasing mistake
Mar 27 2018, 10:17 AM
tdammers updated the diff for D4395: Discard reflexive casts during Simplify.
  • Discard reflexive casts during Simplify
  • Fix huge performance regression
Mar 27 2018, 9:57 AM

Mar 26 2018

tdammers updated the diff for D4395: Discard reflexive casts during Simplify.
  • Fix huge performance regression
Mar 26 2018, 6:54 AM
tdammers added a comment to D4395: Discard reflexive casts during Simplify.

On further thought, I think it'd be better to get this landed first, and then look into further improvements.

Mar 26 2018, 6:54 AM