harpocrates (Alec Theriault)
User

Projects

User does not belong to any projects.

User Details

User Since
Oct 3 2017, 5:55 PM (58 w, 7 h)

Recent Activity

Mon, Nov 12

harpocrates added a comment to D5332: Simplify 'ExtBits' in the lexer.

These are just some cleanup changes I wanted to do in D5269, but thought would distract from the main purpose of the diff. None of the stuff here is essential or fixes any bugs, so I'm willing to just abandon if folks think this is too much code churn for too little benefit.

Mon, Nov 12, 8:17 PM
harpocrates added a parent revision for D5332: Simplify 'ExtBits' in the lexer: D5269: 'DynFlag'-free version of 'mkParserFlags'.
Mon, Nov 12, 8:13 PM
harpocrates added a child revision for D5269: 'DynFlag'-free version of 'mkParserFlags': D5332: Simplify 'ExtBits' in the lexer.
Mon, Nov 12, 8:13 PM
harpocrates created D5332: Simplify 'ExtBits' in the lexer.
Mon, Nov 12, 8:13 PM
harpocrates added a comment to D5262: Fix some broken links (#15733).

I've landed this in https://github.com/haskell/haddock/commit/88c17946c9dfba6736e56660f566d21bebefa7c9. I'm not sure how to inform Phabricator of this fact though... I guess I half expected it to automatically close this.

Mon, Nov 12, 12:28 PM

Sat, Nov 10

harpocrates added a reviewer for D5316: Misc. fixes for Hadrian's handling of Haddock: snowleopard.
Sat, Nov 10, 3:27 PM

Fri, Nov 9

harpocrates updated the summary of D5316: Misc. fixes for Hadrian's handling of Haddock.
Fri, Nov 9, 1:53 PM
harpocrates created D5316: Misc. fixes for Hadrian's handling of Haddock.
Fri, Nov 9, 1:51 PM

Mon, Nov 5

harpocrates added a comment to D5269: 'DynFlag'-free version of 'mkParserFlags'.

@bgamari Do you mind merging these changes as is first? I'd prefer this patch remain primarily about mkParserFlags/mkParserFlags'.

Mon, Nov 5, 3:45 PM
harpocrates added a comment to D5181: Warn on all out-of-range literals in pats/exprs.

I'll deal with the case where host and target have differently-sized Int/Word in another patch. That is definitely the sort of thing for which a warning would be super useful!
I see how what we are currently doing is not going to cut it...

Mon, Nov 5, 3:34 PM
harpocrates updated the diff for D5181: Warn on all out-of-range literals in pats/exprs.
  • Fix empty enumeration of natural
  • Address nits
  • Add a test case for Trac #15460, which is also now solved
  • Update users guide
  • Address review feedback
Mon, Nov 5, 3:30 PM

Fri, Nov 2

harpocrates planned changes to D5181: Warn on all out-of-range literals in pats/exprs.

Thanks for the review - will update later today or tomorrow.

Fri, Nov 2, 10:28 AM

Thu, Nov 1

harpocrates added inline comments to D5269: 'DynFlag'-free version of 'mkParserFlags'.
Thu, Nov 1, 7:06 PM
harpocrates added a comment to D5181: Warn on all out-of-range literals in pats/exprs.

Friendly ping!

Thu, Nov 1, 4:52 PM
harpocrates planned changes to D5057: [WIP] Remove Haddock tokens from the grammar.

This is almost done. The perf/haddock tests all pass again. All that remains is:

Thu, Nov 1, 11:27 AM

Wed, Oct 31

harpocrates updated the diff for D5057: [WIP] Remove Haddock tokens from the grammar.

x - Add some tests

  • Rebase sludge
  • Promising WIP optimization
  • Fix an off-by one reverse
  • Fix issue around 'pushCurrentContext'
Wed, Oct 31, 10:24 PM

Sun, Oct 28

harpocrates updated the diff for D5269: 'DynFlag'-free version of 'mkParserFlags'.
  • Removed HPC and SCC bits in ParserFlags
  • Uniform handling of extension flags in ParserFlags
Sun, Oct 28, 2:38 PM

Sat, Oct 27

harpocrates added inline comments to D5269: 'DynFlag'-free version of 'mkParserFlags'.
Sat, Oct 27, 11:54 AM

Fri, Oct 26

harpocrates added a comment to D5269: 'DynFlag'-free version of 'mkParserFlags'.

Exposing pExtsBitmap really is a footgun - I shot myself while trying to work out a detail of D5067.

Fri, Oct 26, 11:56 PM
harpocrates added inline comments to D5067: [WIP] Hi Haddock: Enable haddock to generate docs from .hi-files.
Fri, Oct 26, 11:54 PM
harpocrates created D5269: 'DynFlag'-free version of 'mkParserFlags'.
Fri, Oct 26, 11:46 PM
harpocrates planned changes to D5239: Support generating HIE files.

Thank you for doing this, @harpocrates! Don't worry about being busy, @wz1000, it's quite understandable (and expected) that you are busy again now since summer is over.

Yes, I think it would be possible to get this in for 8.8. However, there are a few things that are needed:

  • A note describing the goal and function of this mechanism
  • A plan for how to maintain this format. As I point out inline, I am quite nervous about the stringy nature of the current format. I apologize for not catching this earlier.
  • Port the makefile changes to Hadrian, which will be merged very shortly.
Fri, Oct 26, 5:59 PM
harpocrates added inline comments to D5067: [WIP] Hi Haddock: Enable haddock to generate docs from .hi-files.
Fri, Oct 26, 12:54 AM

Tue, Oct 23

harpocrates added inline comments to D5158: Document the list data type.
Tue, Oct 23, 1:25 PM

Fri, Oct 19

harpocrates accepted D5245: Fix #15781 by using ktypedocs on type synonym RHSes.

Nice catch! I've spent the last ten minutes looking for other eligible ctypedoc, but to no avail. :)

Fri, Oct 19, 10:04 AM

Thu, Oct 18

harpocrates added a comment to D5239: Support generating HIE files.

I'm putting these changes up because I'd like them to be reviewed sooner rather than later, especially since they are supposedly already almost merge-ready. Critically, this is blocking the Hi Haddock GSOC project too (see D5067), since there is no good path forward on that front for --hyperlinked-sources without .hie files.

@bgamari do you think it is unreasonable for this to be merged in time for 8.8.1?

/cc @hvr @sjakobi

Hey, thanks a lot for making this. I didn't realise the deadline for 8.8 was approaching and have been a bit busy with schoolwork. I did recently rebase my changes on top of the latest head, and was in the middle of a small refactoring before submitting the Diff.

I believe these changes are mostly ready, I but I think a discussion is needed on versioning and how this format and the API will evolve over time. Currently no kind of hie file version checking/validation is implemented. We should also make some guidelines about compatibility, and if want the file itself to be compatible across GHC versions, or whether programs using .hie files would need to be compiled against the version of GHC used to generate the files. I believe we are constrained in this choice due to the usage of Binary instead of CBOR as was originally planned.

Again, sorry for not making this sooner. I see that you've even commented on the gist, which I didn't receive a notification for.

Thu, Oct 18, 2:32 PM
harpocrates updated subscribers of D5239: Support generating HIE files.

I'm putting these changes up because I'd like them to be reviewed sooner rather than later, especially since they are supposedly already almost merge-ready. Critically, this is blocking the Hi Haddock GSOC project too (see D5067), since there is no good path forward on that front for --hyperlinked-sources without .hie files.

Thu, Oct 18, 2:09 PM
harpocrates created D5239: Support generating HIE files.
Thu, Oct 18, 2:02 PM

Wed, Oct 17

harpocrates updated the test plan for D5236: Trigger multiline mode in GHCi on '\case' (#13087).
Wed, Oct 17, 2:54 PM
harpocrates updated the diff for D5236: Trigger multiline mode in GHCi on '\case' (#13087).
Wed, Oct 17, 2:53 PM
harpocrates created D5236: Trigger multiline mode in GHCi on '\case' (#13087).
Wed, Oct 17, 2:26 PM

Oct 13 2018

harpocrates updated the diff for D5057: [WIP] Remove Haddock tokens from the grammar.

Rebase

Oct 13 2018, 9:47 AM

Oct 11 2018

harpocrates added a comment to D5220: Make 'Lift'/'TExp' levity-polymorphic.

Is there a reason why we can't just make these instances levity polymorphic now?

I just realized the answer to my own question: no, that would require levity polymorphic binders. Ugh.

Oct 11 2018, 1:26 AM
harpocrates updated the diff for D5220: Make 'Lift'/'TExp' levity-polymorphic.
  • Allow stock deriving of 'Lift' for unlifted types
Oct 11 2018, 1:23 AM

Oct 10 2018

harpocrates updated the diff for D5220: Make 'Lift'/'TExp' levity-polymorphic.
  • Make it compile on 8.4.2 too
Oct 10 2018, 8:58 PM
harpocrates added a parent revision for D5220: Make 'Lift'/'TExp' levity-polymorphic: D5198: TH 'TExp' docs + 'liftedTyped'.
Oct 10 2018, 4:55 PM
harpocrates added a child revision for D5198: TH 'TExp' docs + 'liftedTyped': D5220: Make 'Lift'/'TExp' levity-polymorphic.
Oct 10 2018, 4:55 PM
harpocrates created D5220: Make 'Lift'/'TExp' levity-polymorphic.
Oct 10 2018, 4:55 PM

Oct 9 2018

harpocrates added a comment to D5181: Warn on all out-of-range literals in pats/exprs.

D4475 just landed, so you could rebase this Diff on top of master and add support for Int8# and Word8#, if you wish.

Oct 9 2018, 12:18 PM

Oct 5 2018

harpocrates added a comment to D5198: TH 'TExp' docs + 'liftedTyped'.

Here is the ghc-proposal: https://github.com/ghc-proposals/ghc-proposals/pull/175.

Oct 5 2018, 10:34 AM

Oct 4 2018

harpocrates updated the diff for D5199: Set `infixr -1 ->`.

Rebase and squash

Oct 4 2018, 5:21 PM
harpocrates removed a parent revision for D5199: Set `infixr -1 ->`: D5167: Improve generated `GHC.Prim` docs.
Oct 4 2018, 3:51 PM
harpocrates removed a child revision for D5167: Improve generated `GHC.Prim` docs: D5199: Set `infixr -1 ->`.
Oct 4 2018, 3:51 PM
harpocrates updated the diff for D5173: Allow (unparenthesized) kind signatures.
  • Address nits
  • accept test case
  • More conservative grammar
  • Fix annotation bug around parens
  • Add another test case
  • 'type' -> 'kind'
  • Update user guide notes
Oct 4 2018, 2:16 PM
harpocrates added a comment to D5181: Warn on all out-of-range literals in pats/exprs.

Also, you linked Trac #13256 as a related ticket, but didn't add a corresponding test case. Does this patch actually fix Trac #13256? If so, it would be good to test this.

Oct 4 2018, 12:41 PM
harpocrates updated the diff for D5181: Warn on all out-of-range literals in pats/exprs.
  • Update users guide
Oct 4 2018, 12:41 PM
harpocrates updated the diff for D5181: Warn on all out-of-range literals in pats/exprs.
  • Add a test case for Trac #15460, which is also now solved
Oct 4 2018, 12:41 PM
harpocrates updated the diff for D5181: Warn on all out-of-range literals in pats/exprs.
  • Address nits
Oct 4 2018, 12:41 PM
harpocrates added inline comments to D5199: Set `infixr -1 ->`.
Oct 4 2018, 10:16 AM

Oct 3 2018

harpocrates removed a parent revision for D5199: Set `infixr -1 ->`: D5180: Parse the (!) type operator and allow type operators in existential context.
Oct 3 2018, 9:39 PM
harpocrates removed a child revision for D5180: Parse the (!) type operator and allow type operators in existential context: D5199: Set `infixr -1 ->`.
Oct 3 2018, 9:39 PM
harpocrates retitled D5199: Set `infixr -1 ->` from Set `infixr -2 ->` and `infix ~ -1` to Set `infixr -1 ->`.
Oct 3 2018, 9:39 PM
harpocrates updated the diff for D5199: Set `infixr -1 ->`.
  • Address feedback
Oct 3 2018, 9:35 PM
harpocrates added a comment to D5199: Set `infixr -1 ->`.

Welp, it looks like I misunderstood how GHC parses ~ today. Thanks @RyanGlScott and @int-index for patiently pointing out what I missed. Apologies for all of the confusion.

Oct 3 2018, 6:30 PM
harpocrates added a comment to D5198: TH 'TExp' docs + 'liftedTyped'.

I wonder if we should run a quick GHC proposal though. The discussion there is almost always illuminating, and this is a user-facing change.

It would require parking this Diff for now, but I'm inclined to agree that we should seek some amount of community feedback (be it through the GHC proposals page, the libraries mailing list, or something equivalent) before intentionally making a breaking change. (After all, it's possible that people are making use of the current default without making their code public!)

Oct 3 2018, 3:35 PM
harpocrates added a parent revision for D5199: Set `infixr -1 ->`: D5180: Parse the (!) type operator and allow type operators in existential context.
Oct 3 2018, 3:15 PM
harpocrates added a child revision for D5180: Parse the (!) type operator and allow type operators in existential context: D5199: Set `infixr -1 ->`.
Oct 3 2018, 3:15 PM
harpocrates added a comment to D5199: Set `infixr -1 ->`.

I'm a bit confused here. Doesn't ~ actually have a fixity of infixr 9 in practice currently? It certainly doesn't have negative fixity, as evidenced from the second program in Trac #10056 (which shows that a \\ b ~ Int is parsed as a \\ (b ~ Int)).

Oct 3 2018, 10:59 AM
harpocrates added a comment to D5199: Set `infixr -1 ->`.

Note that this patch does not fix Trac #15235 and Trac #10056, which are about setting the right fixities for -> and ~. Although it would be simple to claim in GHCi that

Oct 3 2018, 9:50 AM
harpocrates updated the diff for D5198: TH 'TExp' docs + 'liftedTyped'.
  • Update changelog
Oct 3 2018, 9:42 AM
harpocrates added a parent revision for D5199: Set `infixr -1 ->`: D5167: Improve generated `GHC.Prim` docs.
Oct 3 2018, 9:37 AM
harpocrates added a child revision for D5167: Improve generated `GHC.Prim` docs: D5199: Set `infixr -1 ->`.
Oct 3 2018, 9:37 AM
harpocrates created D5199: Set `infixr -1 ->`.
Oct 3 2018, 9:34 AM

Oct 2 2018

harpocrates updated the diff for D5198: TH 'TExp' docs + 'liftedTyped'.
  • Move 'liftTyped' into the 'Lift' class
Oct 2 2018, 9:41 PM
harpocrates added a comment to D5198: TH 'TExp' docs + 'liftedTyped'.

What about changing the definition of Lift to

class Lift t where
    lift :: t -> Q Exp
    lift = unTypeQ . liftTyped

    liftTyped :: t -> Q (TExp t)
    liftTyped = unsafeTExpCoerce . lift

    {-# MINIMAL lift | liftTyped #-}

This way liftTyped is a method, old instances still work, and in the future we could move lift out of the class.

Oct 2 2018, 5:42 PM
harpocrates added inline comments to D5198: TH 'TExp' docs + 'liftedTyped'.
Oct 2 2018, 5:21 PM
harpocrates created D5198: TH 'TExp' docs + 'liftedTyped'.
Oct 2 2018, 5:00 PM
harpocrates created D5197: Documentation fixes in 'template-haskell'.
Oct 2 2018, 4:26 PM

Sep 30 2018

harpocrates created D5188: Don't drop arguments in TH type arguments.
Sep 30 2018, 9:25 AM

Sep 29 2018

harpocrates added a comment to D5067: [WIP] Hi Haddock: Enable haddock to generate docs from .hi-files.

Something to not forget: once we bump the Haddock submodule again, we'll need to add the {-# OPTIONS_HADDOCK print-explicit-runtime-reps #-} option (introduced here) to all the modules where we really want RuntimeRep to show up in the generated docs. Off the top of my head, I'd want that to include:

Sep 29 2018, 1:34 PM

Sep 26 2018

harpocrates added inline comments to D5182: GHCi should not filter instances involving cTuples.
Sep 26 2018, 8:38 AM

Sep 25 2018

harpocrates updated the summary of D5181: Warn on all out-of-range literals in pats/exprs.
Sep 25 2018, 11:36 PM
harpocrates updated the diff for D5181: Warn on all out-of-range literals in pats/exprs.
  • Fix empty enumeration of natural
Sep 25 2018, 11:36 PM
harpocrates created D5182: GHCi should not filter instances involving cTuples.
Sep 25 2018, 6:16 PM
harpocrates added a comment to D5181: Warn on all out-of-range literals in pats/exprs.

Apologies for some extraneous comment-only changes. I rely on the generated Haddock documentation for navigating GHC's source and the lack of doc comments in this area of the codebase was a somewhat frustrating experience.

Sep 25 2018, 4:41 PM
harpocrates created D5181: Warn on all out-of-range literals in pats/exprs.
Sep 25 2018, 4:35 PM

Sep 24 2018

harpocrates updated the diff for D5173: Allow (unparenthesized) kind signatures.
  • 'type' -> 'kind'
Sep 24 2018, 12:13 PM
harpocrates added inline comments to D5173: Allow (unparenthesized) kind signatures.
Sep 24 2018, 11:39 AM
harpocrates updated the diff for D5173: Allow (unparenthesized) kind signatures.
  • Fix annotation bug around parens
  • Add another test case
Sep 24 2018, 11:34 AM
harpocrates added a comment to D5173: Allow (unparenthesized) kind signatures.

I think the grammar/deriving issues are solved, but I've uncovered an annotation issue that I really don't know how to fix - perhaps someone could advise?

Sep 24 2018, 3:24 AM
harpocrates updated the diff for D5173: Allow (unparenthesized) kind signatures.
  • More conservative grammar
Sep 24 2018, 3:00 AM

Sep 23 2018

harpocrates planned changes to D5173: Allow (unparenthesized) kind signatures.

This still needs some work. Looks like some a handful of the failing tests are legitimate. Two types of problems stand out:

Sep 23 2018, 1:13 PM
harpocrates updated the diff for D5173: Allow (unparenthesized) kind signatures.
  • Address nits
  • accept test case
Sep 23 2018, 1:13 PM
harpocrates added inline comments to D5172: Don't show constraint tuples in errors (#14907).
Sep 23 2018, 10:42 AM
harpocrates updated the diff for D5172: Don't show constraint tuples in errors (#14907).
  • Reuse tuple constraint sanitization
Sep 23 2018, 10:42 AM
harpocrates updated the diff for D5167: Improve generated `GHC.Prim` docs.
  • -fno-warn-deprecations -> -Wno-deprecations
Sep 23 2018, 9:40 AM
harpocrates created D5173: Allow (unparenthesized) kind signatures.
Sep 23 2018, 4:39 AM
harpocrates updated the diff for D5167: Improve generated `GHC.Prim` docs.
  • Actually add the test
Sep 23 2018, 3:24 AM
harpocrates created D5172: Don't show constraint tuples in errors (#14907).
Sep 23 2018, 2:49 AM

Sep 22 2018

harpocrates planned changes to D5057: [WIP] Remove Haddock tokens from the grammar.

Apologize for letting this languish for so long - I expect to pick this work back up in the coming weeks.

Sep 22 2018, 10:52 PM

Sep 21 2018

harpocrates updated the diff for D5167: Improve generated `GHC.Prim` docs.
  • Enable '-fno-warn-deprecations' in GHC.PrimopWrappers
Sep 21 2018, 11:45 AM
harpocrates added a comment to D5167: Improve generated `GHC.Prim` docs.

I really appreciate the suggestion regarding the docs around (->)'s levity polymorphism.

Sep 21 2018, 10:02 AM
harpocrates updated the diff for D5167: Improve generated `GHC.Prim` docs.
  • Address nits
Sep 21 2018, 9:59 AM
harpocrates added inline comments to D5167: Improve generated `GHC.Prim` docs.
Sep 21 2018, 8:54 AM
harpocrates updated the diff for D5167: Improve generated `GHC.Prim` docs.
Sep 21 2018, 3:59 AM

Sep 20 2018

harpocrates updated the summary of D5167: Improve generated `GHC.Prim` docs.
Sep 20 2018, 9:45 AM
harpocrates created D5167: Improve generated `GHC.Prim` docs.
Sep 20 2018, 9:45 AM

Sep 19 2018

harpocrates updated the diff for D5158: Document the list data type.
  • Examples use h4, not h3
Sep 19 2018, 11:15 PM

Sep 18 2018

harpocrates updated the diff for D5158: Document the list data type.
  • Grammar
Sep 18 2018, 3:36 PM
harpocrates updated the diff for D5158: Document the list data type.
  • Fix missing links
Sep 18 2018, 3:36 PM