- User Since
- May 5 2015, 8:45 PM (224 w, 2 d)
Jul 25 2018
Apr 23 2018
I'm really sorry to getting here so late, and making people (in particular @sgraf) decipher code I wrote. I needed some energy to come back to this problem, which I basically abondoned because it overwhelmed me.
Jan 21 2018
@mpickering Any comments on the latest version? (I believe this differential revision is waiting for an action from you. Apologies if I'm mistaken)
Dec 24 2017
Is there something that needs to be done on my side? Or is this revision waiting for review?
- This is not making it in 8.4
Dec 14 2017
- Clean up test cases
Dec 11 2017
- Record a perf regression in parsing001
@mpickering Updated the commit message to mention shift/reduce conflicts.
- Parser.y: typo
- Better error message for LambdaCase
Nov 23 2017
Jan 10 2017
@simonpj I've updated the note. I didn't include actual numbers because I thought it might be misleading (the inline pragma turns the allocation for T13001 from O(n) to O(1), where n is the length of the list, so the ratio of the two allocation numbers heavily depends on the choice of n.)
- Add comment
Jan 9 2017
- Add a reference to a Note
Jan 6 2017
@simonpj I've updated the code to simplify the invariant. Thank you for your help!
- Disallow Addr# variables in the RHS of top-level bindings
Dec 28 2016
Dec 26 2016
- Remove duplicate comment
Could you make a Note (maybe in CoreSyn or Literal that gives an overview of all the moving parts. Much as the summary, perhaps with an example or two
- ghci: allocate one RemotePtr for each top-level Addr# binding
- More comments
Dec 22 2016
@simonpj Sorry about being slow. I think I know what to do about the GHCi issue. I'm hoping that I can finish implementing this and address the other comments in a few days.
Dec 5 2016
I've gotten lost on this patch. Can we reset and summarise?
Our goal is simply to allow top-level string literal bindings. But the patch is quite long. Could you give a list summarising the knock-on consequences of this apparently simple decision?
- Revert a change to preInlineUnconditionally
Nov 20 2016
If it can't happen, what's the reasoning? Couldn't the simplifier lift out a string to the top level, then duplicate the reference to it by inlining?
Nov 14 2016
This worries me quite a bit, because we use GHCi on very large codebases with a lot of strings.
That sounds like a fair concern, but I can't think of an actual case where this leads to a bad runtime behavior on GHCi.
Nov 13 2016
I wonder, how does GHCi handle top-level Addr# bindings? Does it just work? (If so, how/why?)
Before the generation of the byte code, all Addr# variables are inlined into their use sites. Actually this may not be ideal because (1) this won't work if the source language had an Addr# variable, and (2) it potentially duplicates data.
- mention the comment 16 on Trac #8472 in perf/compiler/all.T
- Fix rules that were broken by the top-level string change
- add Note about _bytes label
- 80 chars
Oct 23 2016
@simonmar Thank you for reviewing this!
- Use a new type of labels (_bytes) for top-level string literals
Oct 20 2016
I updated the diff again to accept more perf regressions. (I didn't realize that validate --slow skipped some compiler perf tests).
- Accept compiler residency regressions
Oct 19 2016
@bgamari I update test cases. Unfortunately I had to increase the perf number for T4029, I hope it is acceptable.
- Update test case for T3234
- accept perf regression for T4029
- Reword Note [CoreSyn top-level string literals]
Oct 18 2016
Oct 17 2016
Some code and most of the documentation comments are by @gridaphobe.
Oct 2 2016
@gridaphobe Sure I will.
I've fixed the above issue. The patch is at https://github.com/takano-akio/ghc/commit/bc02b52f7e27fd9b51c61d159c7be544022abc0e.
Sep 30 2016
This version causes test failures in validate --slow. A typical error message is
Sep 4 2016
Sep 2 2016
I've added comments about the undefined behavior in primops.txt.pp. Also I checked that these commits add no errors in validate --slow.
- Document undefined behavior of quotInt# and remInt# when the devisor is 0
Aug 30 2016
Aug 29 2016
May 12 2016
May 10 2016
Apply lint suggestion