Re: Residency profiles

2018-12-06 Thread Sebastian Graf
Hey, thanks, all! Measuring with `-A1M -F1` delivers much more reliable residency numbers. `-F` doesn't seem to be documented. From reading `rts/RtsFlags.c` and `rts/sm/GC.c` I gather that it's the factor by which to multiply the number of live bytes by to get the new old gen size? So effectively,

Re: Residency profiles

2018-12-09 Thread Sebastian Graf
n Thu, 6 Dec 2018 at 16:21, Sebastian Graf wrote: > >> Hey, >> >> thanks, all! Measuring with `-A1M -F1` delivers much more reliable >> residency numbers. >> `-F` doesn't seem to be documented. From reading `rts/RtsFlags.c` and >> `rts/sm/GC.c` I gather th

Re: Better perf

2018-12-14 Thread Sebastian Graf
Hey, when going through Simon-nofib-notes, I stumbled over this thread from March 2017, when I hadn't yet subscribed to this list: https://mail.haskell.org/pipermail/ghc-devs/2017-March/013887.html. Joachim and Simon were trying to pin-point seemingly random regressions and improvements of ~5% to

Re: [ANNOUNCE] You should try Hadrian

2019-01-29 Thread Sebastian Graf
Side note: On my Windows my machine, where I use the environment provided by `stack exec --no-ghc-package-path bash`, I have to do `bash -c 'pushd . && . /etc/profile && popd && ./configure --enable-tarballs-autodownload'` or something along those lines for some time now (probably since the boot sc

Re: Scaling back CI (for now)?

2019-02-02 Thread Sebastian Graf
Hi, Am Sa., 2. Feb. 2019 um 16:09 Uhr schrieb Matthew Pickering < matthewtpicker...@gmail.com>: > > All the other flavours should be run once the commit reaches master. > > Thoughts? > That's even better than my idea of only running them as nightlies. In favor! > Cheers, > > Matt > ___

Re: Near-daily "Remote mirror update failed" e-mails from GitLab

2019-04-15 Thread Sebastian Graf
Hey, sorry, I'm a little late to respond. I didn't push to GitHub, at least not consciously. Let me know if you find that I screwed up somewhere. Cheers, Sebastian Von: Ben Gamari Gesendet: Samstag, April 6, 2019 8:28 PM An: Ryan Scott; Sebasti

Re: Workflow question (changing codegen)

2019-06-30 Thread Sebastian Graf
Re: git worktree: That's the workflow I'm currently using. It has its problems with submodules, see https://stackoverflow.com/questions/31871888/what-goes-wrong-when-using-git-worktree-with-git-submodules. But you can make it work with this git alias from the first answer: https://gitlab.com/clacke

Re: a better workflow?

2019-07-24 Thread Sebastian Graf
I found that git worktree works rather well, even with submodules (well, mostly. Even if it doesn't for some reason, you can still update and init the submodules manually, losing sharing in the process). See https://stackoverflow.com/a/31872051, in particular the GitHub links to `wtas` alias. I mo

Re: Try haskell-ide-engine on GHC!

2019-07-26 Thread Sebastian Graf
Hey all, What can I say, after few hours of on and off tinkering I got it to work! The hover information is incredibly helpful, as is jump to definition. It works even in modules with type and name errors! The error information not so much (yet), at least not compared to the shorter feedback loop

PseudoOps in primops.txt.pp

2019-08-11 Thread Sebastian Graf
Hey fellow devs, While implementing new PseudoOps, a couple of questions popped up: 1. What are PseudoOps? When do we want to declare one? There doesn't seem to be any documentation around them. I only figured out that I probably want a PseudoOp by comparing to PrimOps I thought would be

Re: PseudoOps in primops.txt.pp

2019-08-11 Thread Sebastian Graf
we actually don't need the definition) seems to be the whole point about having the compiler be aware of these special identifiers. So, for a concrete question: What are the reasons that we don't make i.e. `lazy` a PseudoOp? Am So., 11. Aug. 2019 um 12:42 Uhr schrieb Sebastian Graf < s

Re: Linker error when adding a new source file

2019-08-23 Thread Sebastian Graf
I recently experienced this when rebasing. Have you tried a clean build? `rm -rf _build` was enough for me, IIRC. Am Fr., 23. Aug. 2019 um 17:08 Uhr schrieb Brandon Allbery < allber...@gmail.com>: > From the looks of it, you're building with a bootstrap compiler (stage 0). > Does the build compil

Re: Linker error when adding a new source file

2019-08-23 Thread Sebastian Graf
Ah, you already tried a clean build. Nevermind... Am Fr., 23. Aug. 2019 um 17:14 Uhr schrieb Sebastian Graf < sgraf1...@gmail.com>: > I recently experienced this when rebasing. Have you tried a clean build? > `rm -rf _build` was enough for me, IIRC. > > Am Fr., 23. Aug. 2019 um

Re: GHC: Policy on -O flags?

2019-08-27 Thread Sebastian Graf
Hi, I used to think that the policy for being eligible for -O1 is that C must be non-positive, e.g. that the compile times don't suffer at all. Everything beyond that (well, given that R is positive) should be -O2 only. There's precedent at least for Late Lambda Lifting (which is only run for -O2)

Re: eqType modulo associated types?

2019-09-16 Thread Sebastian Graf
Hi Conal, I've had success with `FamInstEnv.topNormaliseType` in the past. `eqType` doesn't take `FamInstEnvs`, so I'm pretty sure it can't look through family instances by itself. Cheers, Sebastian Am Mo., 16. Sept. 2019 um 02:38 Uhr schrieb Conal Elliott : > It looks to me like `eqType` accou

Re: Changes in GHC API modularity with the "Encode shape information in PMOracle" MR

2019-09-16 Thread Sebastian Graf
Hi Shayne, Sorry to hear that! We didn't consider modularity at all and I would be happy to try to refactor in a way that would allow `ghc-lib-parser` to be properly separated again. I'm fairly certain that I didn't directly touch anything parser related, but apparently the new cyclic import of Pm

Re: Changes in GHC API modularity with the "Encode shape information in PMOracle" MR

2019-09-17 Thread Sebastian Graf
gain. > > Cheers, > > Matt > > On Mon, Sep 16, 2019 at 10:38 PM Shayne Fletcher via ghc-devs > wrote: > > > > Hi Sebastian, > > > > On Mon, Sep 16, 2019 at 5:23 PM Sebastian Graf > wrote: > >> > >> Hi Shayne, > >> > &g

Re: Changes in GHC API modularity with the "Encode shape information in PMOracle" MR

2019-09-17 Thread Sebastian Graf
, 16. Sept. 2019 um 22:38 Uhr schrieb Shayne Fletcher < shayne.fletc...@daml.com>: > Hi Sebastian, > > On Mon, Sep 16, 2019 at 5:23 PM Sebastian Graf > wrote: > >> Hi Shayne, >> >> Sorry to hear that! We didn't consider modularity at all and I would be >

Re: Should coercion binders (arguments or binders in patterns) be TyVars?

2019-10-06 Thread Sebastian Graf
Hi Ömer, I'm not sure if there's a case in GHC (yet, because newtype coercions are zero-cost), but coercions in general (as introduced for example in Types and Programming Languages) can carry computational content and thus can't be erased. Think of a hypothetical coercion `co :: Int ~ Double`; a

Re: How to navigate around the source tree?

2019-10-23 Thread Sebastian Graf
FWIW, I'm using VSCode's fuzzy file search with Ctrl+P (and vim's equivalent) rather successfully. Just tried it for Hs/Utils.hs by typing 'hsutils.hs'. It didn't turn up as the first result in VSCode, but it in vim. Am Mi., 23. Okt. 2019 um 14:27 Uhr schrieb Matthew Pickering < matthewtpicker...@

Re: Urgent: git problem

2019-10-23 Thread Sebastian Graf
Hi, Some googling turned up this SO thread https://stackoverflow.com/a/43253320/388010 Does that help? Cheers Sebastian Am Mi., 23. Okt. 2019 um 17:22 Uhr schrieb Simon Peyton Jones via ghc-devs < ghc-devs@haskell.org>: > Aieee! All my GHC repos are failing with this. As a result I can’t > p

Re: Simplifier bug fixed in GHC 8.8.1?

2019-10-28 Thread Sebastian Graf
Hi Alexis, I think the fact that it looks like it's fixed is only a coincidence. See https://gitlab.haskell.org/ghc/ghc/issues/17409, where I go into a bit more detail. Cheers Sebastian Am Mo., 28. Okt. 2019 um 07:16 Uhr schrieb Alexis King < lexi.lam...@gmail.com>: > Hi all, > > I have an odd

Re: Handling source locations in HsSyn via TTG

2019-10-28 Thread Sebastian Graf
Hi Vlad, Note that the MR description is a little misleading and I should update it: I'm using an open type family, really. See the section for solution D on the wiki page that

Re: Handling source locations in HsSyn via TTG

2019-10-30 Thread Sebastian Graf
> I would like to submit a solution E, which is just a variant of D (or a meshing together of D and B), but may have different pros and cons. I like this conceptually: No `WrapL`/`WrapX`/`XWrap`/`XRec` (the trouble to find a fitting name already suggests that it's maybe a little too general a conc

Re: is Unlifted Type == Primitive Type?

2020-01-20 Thread Sebastian Graf
Hi Csaba, Yes, boxed unlifted ADTs are supported by code-gen, or at least the fix for codegen to deal with it is [rather simple]( https://gitlab.haskell.org/ghc/ghc/commit/fc4e2a03ebb40e2268ec0deb9833ec82bd2d7bee ). Hope that helps. Sebastian Am Mo., 20. Jan. 2020 um 11:13 Uhr schrieb Csaba Hrus

Re: Residency profiles

2020-01-23 Thread Sebastian Graf
x27;t introduce non-determinism otherwise. Sampling rate can be controlled with `-A`, much like `-F1` (but it's still faster for some reason). Am Mo., 10. Dez. 2018 um 09:11 Uhr schrieb Simon Marlow : > https://phabricator.haskell.org/D5428 > > > On Sun, 9 Dec 2018 at 10:12, Sebastian G

Re: DataCon tag value convention

2020-02-12 Thread Sebastian Graf
You probably couldn't do pointer tagging anymore, which is probably a substantial performance loss. Am Mi., 12. Feb. 2020 um 19:58 Uhr schrieb Csaba Hruska < csaba.hru...@gmail.com>: > Hello, > > In theory

Re: Fusing loops by specializing on functions with SpecConstr?

2020-03-29 Thread Sebastian Graf
Hi Alexis, I've been wondering the same things and have worked on it on and off. See my progress in https://gitlab.haskell.org/ghc/ghc/issues/855#note_149482 and https://gitlab.haskell.org/ghc/ghc/issues/915#note_241520. The big problem with solving the higher-order specialisation problem throug

Re: Fusing loops by specializing on functions with SpecConstr?

2020-03-31 Thread Sebastian Graf
: do one layer of unrolling by hand, perhaps even in FRP source > code: > > add1rec = SF (\a -> let !b = a+1 in (b,add1rec)) > > add1 = SF (\a -> let !b = a+1 in (b,add1rec)) > > > > Simon > > > > *From:* ghc-devs *On Behalf Of *Sebastian > Graf >

Re: Fusing loops by specializing on functions with SpecConstr?

2020-03-31 Thread Sebastian Graf
e > code: > > add1rec = SF (\a -> let !b = a+1 in (b,add1rec)) > add1 = SF (\a -> let !b = a+1 in (b,add1rec)) > > > Yes, I was playing with the idea at one point of some kind of RULE that > inserts GHC.Magic.inline on the specialized RHS. That way the programmer >

Re: Fusing loops by specializing on functions with SpecConstr?

2020-04-01 Thread Sebastian Graf
. Basically do some type algebra in the implementation. - An even simpler thing would be to somehow use `Void#` (which should have been named `Unit#`), but I think that doesn't work due to runtime rep polymorphism restrictions. I think there is lots that can be done to tune this ide

Re: Fusing loops by specializing on functions with SpecConstr?

2020-04-05 Thread Sebastian Graf
> > That’s it. These two rules alone are enough to eliminate the redundant > tupling. Now the optimized version of `mapMaybeSF` is beautiful! > Beautiful indeed! That's wonderful to hear. Good luck messing about with your FRP framework! Sebastian Am Sa., 4. Apr. 2020 um 03:45 Uhr schrieb Alexis

Re: COMPLETE pragmas

2020-08-31 Thread Sebastian Graf
Hi Richard, Am Mo., 31. Aug. 2020 um 21:30 Uhr schrieb Richard Eisenberg < r...@richarde.dev>: > Hi Sebastian, > > I enjoyed your presentation last week at ICFP! > Thank you :) I'm glad you liked it! This thread ( > https://ghc-devs.haskell.narkive.com/NXBBDXg1/suppressing-false-incomplete-patt

Re: COMPLETE pragmas

2020-09-01 Thread Sebastian Graf
tructors can also participate. But maybe there is always at least one >> pattern synonym (which would be a reasonable restriction), so I guess you >> can look at the pattern-match as a whole and use the pattern synonym to >> find the relevant COMPLETE set(s). >> >> Th

Re: Implicit reboxing of unboxed tuple in let-patterns

2020-09-03 Thread Sebastian Graf
Hi, Right now, there is one rule: if the type of any variable bound in the > pattern is unlifted, then the pattern is an unlifter-var pattern and is > strict. > I think the intuition I followed so far was "bindings with unlifted *RHS* are strict". So if I take a program in a strict language with

Re: COMPLETE pragmas

2020-09-03 Thread Sebastian Graf
, Sebastian Am Di., 1. Sept. 2020 um 22:09 Uhr schrieb Joachim Breitner < m...@joachim-breitner.de>: > Am Dienstag, den 01.09.2020, 10:11 +0200 schrieb Sebastian Graf: > > > 2.) Another scenario that I'd really love to see supported with > > > COMPLETE pragmas is a

Parser depends on DynFlags, depends on Hooks, depends on TcM, DsM, ...

2020-09-10 Thread Sebastian Graf
Hey Sylvain, In https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3971 I had to fight once more with the transitive dependency set of the parser, the minimality of which is crucial for ghc-lib-parser and tested by the CountParserDeps test. I

Re: Parser depends on DynFlags, depends on Hooks, depends on TcM, DsM, ...

2020-09-10 Thread Sebastian Graf
; Sylvain > > [1] > https://gitlab.haskell.org/ghc/ghc/-/commit/469fe6133646df5568c9486de2202124cb734242 > [2] > https://gitlab.haskell.org/ghc/ghc/-/wikis/Errors-as-(structured)-values > [3] > https://gitlab.haskell.org/hsyl20/ghc/-/blob/hsyl20/dynflags/parser/compiler/GHC/Par

Re: Restricted sums in BoxedRep

2020-10-14 Thread Sebastian Graf
I believe Simon told me once that NULL pointers in places we assume BoxedRep things are not an option, because the GC assumes it is free to follow that pointer. It won't check if it's NULL or not. That's also the reason why we lower `LitRubbish` (which we use for absent BoxedRep literals) as `()` w

Re: Hadrian: Error "cannot find -lHSrts-1.0_thr_l" when linking ghc executable.

2020-11-25 Thread Sebastian Graf
Hi Roland, Since you mention an RTS variant with an _l suffix (for eventlog), I suspect that you may have to (reboot? and) reconfigure after https://gitlab.haskell.org/ghc/ghc/-/issues/18948 and https://gitlab.haskell.org/ghc/ghc/-/merge_requests/4448. Does that help? Cheers, Sebastian Am Mi.,

Re: Hadrian: Error "cannot find -lHSrts-1.0_thr_l" when linking ghc executable.

2020-11-25 Thread Sebastian Graf
Oh, nevermind. See the comments on https://gitlab.haskell.org/ghc/ghc/-/commit/fc644b1a643128041cfec25db84e417851e28bab. Apparently, master really is broken in devel2 flavour! Am Mi., 25. Nov. 2020 um 10:38 Uhr schrieb Sebastian Graf < sgraf1...@gmail.com>: > Hi Roland, > > Since

Re: Nested constructed product results?

2020-12-15 Thread Sebastian Graf
Hi Alexis, that's a very interesting example you have there! So far, what we referred to as Nested CPR concerned unboxing for returned nested *records*, e.g., the `annotation` field in your example. That's what I try to exploit in !1866 ,

Re: can't get raw logs -- server down?

2020-12-24 Thread Sebastian Graf
Hi Richard, I can access the log just fine. In case you still can't, here it is (at least for a few days): https://1drv.ms/u/s!AvWV1ZpCBdeckIF5-Stx7QZ0gWiUKg?e=NYjO2H Hope that helps. Merry Christmas :) Sebastian Am Do., 24. Dez. 2020 um 17:38 Uhr schrieb Richard Eisenberg < r...@richarde.dev>:

Re: presentation: Next-gen Haskell Compilation Techniques

2021-01-10 Thread Sebastian Graf
Hi Csaba, Thanks for your presentation, that's a nice high-level overview of what you're up to. A few thoughts: - Whole-program optimization sounds great, but also very ambitious, given the amount of code GHC generates today. I'd be amazed to see advances in that area, though, and your

Re: Benchmarking experiences: Cabal test vs compiling nofib/spectral/simple/Main.hs

2021-01-23 Thread Sebastian Graf
Hi Andreas, I similarly benchmark compiler performance by compiling Cabal, but only occasionally. I mostly trust ghc/alloc metrics in CI and check Cabal when I think there's something afoot and/or want to measure runtime, not only allocations. I'm inclined to think that for my purposes (testing t

Re: Plan for GHC 9.2

2021-02-04 Thread Sebastian Graf
Hi Ben, Since part of the changes of https://gitlab.haskell.org/ghc/ghc/-/issues/14422 are already merged into master (e.g. we ignore the "type signature" part of a COMPLETE sig now, because there is nothing to disambiguate), it would be good if we merged the solution outlined in https://gitlab.ha

Re: GHC Reading Guide

2021-02-05 Thread Sebastian Graf
Hi Takenobu, thanks for updating that resource! I know that it was helpful to a couple of students of mine to get a big picture of GHC. I don't have anything to add. There are quite a few more -ddump-* flags for the different Core passes, but I don't think it's interesting to list all of them on

Re: Plan for GHC 9.2

2021-02-11 Thread Sebastian Graf
Hi, Since my hopes of finally merging Nested CPR have recently been crushed again, I hope that we can include the implementation of the UnliftedDatatypes extension (proposal , implementation

Re: Pattern matching desugaring regression? Re: [Haskell-cafe] Why does my module take so long to compile?

2021-02-15 Thread Sebastian Graf
Hi, I'm not sure I see all the context of the conversation, but it is entirely possible that code with many local constraints regresses the pattern-match checker (which is accounted to Desugaring in the profile emitted by -v2), I'm afraid. That simply has to do with the fact that we now actually c

Re: On CI

2021-02-17 Thread Sebastian Graf
Hi Moritz, I, too, had my gripes with CI turnaround times in the past. Here's a somewhat radical proposal: - Run "full-build" stage builds only on Marge MRs. Then we can assign to Marge much earlier, but probably have to do a bit more of (manual) bisecting of spoiled Marge batches.

Re: On CI

2021-02-19 Thread Sebastian Graf
Recompilation avoidance I think in order to cache more in CI, we first have to invest some time in fixing recompilation avoidance in our bootstrapped build system. I just tested on a hadrian perf ticky build: Adding one line of *comment* in the compiler causes - a (pretty slow, yet negligible

Re: GHC 9.1?

2021-03-01 Thread Sebastian Graf
Hi, I generally would like +0.1 steps, but mostly because it causes less head-scratching to everyone new to Haskell. Basically the same argument as Richard says. I can't comment on how far head.hackage (or any tool relies) on odd version numbers, I certainly never have. Given that it's all overla

Re: On CI

2021-03-17 Thread Sebastian Graf
Re: Performance drift: I opened https://gitlab.haskell.org/ghc/ghc/-/issues/17658 a while ago with an idea of how to measure drift a bit better. It's basically an automatically checked version of "Ben stares at performance reports every two weeks and sees that T9872 has regressed by 10% since 9.0"

Re: On CI

2021-03-18 Thread Sebastian Graf
To be clear: All performance tests that run as part of CI measure allocations only. No wall clock time. Those measurements are (mostly) deterministic and reproducible between compiles of the same worktree and not impacted by thermal issues/hardware at all. Am Do., 18. März 2021 um 18:09 Uhr schrie

Re: Type inference of singular matches on GADTs

2021-03-20 Thread Sebastian Graf
Hi Alexis, The following works and will have inferred type `Int`: > bar = foo (\(HNil :: HList '[]) -> 42) I'd really like it if we could write > bar2 = foo (\(HNil @'[]) -> 42) though, even if you write out the constructor type with explicit constraints and forall's. E.g. by using a -XTypeApp

Re: Type inference of singular matches on GADTs

2021-03-22 Thread Sebastian Graf
Cale made me aware of the fact that the "Type applications in patterns" proposal had already been implemented. See https://gitlab.haskell.org/ghc/ghc/-/issues/19577 where I adapt Alexis' use case into a test case that I'd like to see compiling. Am Sa., 20. März 2021 um 15:45 U

Re: Pattern matching desugaring regression? Re: [Haskell-cafe] Why does my module take so long to compile?

2021-03-28 Thread Sebastian Graf
Hi Troels, Sorry to hear GHC 9 didn't fix your problems! Yes, please open an issue. Optimising for specific usage patterns might be feasible, although note that most often it's not the exhaustivity check that is causing problems, but the check for overlapping patterns. At the moment the checker d

Re: Type inference of singular matches on GADTs

2021-03-28 Thread Sebastian Graf
Hi Alexis, If you really want to get by without type annotations, then Viktor's pattern synonym suggestion really is your best option! Note that pattern HNil :: HList '[]; pattern HNil = HNil_ Does not actually declare an HNil that is completely synonymous with HNil_, but it changes the *provide

Re: Multiple versions of happy

2021-03-30 Thread Sebastian Graf
Hi Simon, According to the configure script, you can use the HAPPY env variable. e.g. $ HAPPY=/full/path/to/happy ./configure Hope that helps. Cheers, Sebastian Am Di., 30. März 2021 um 15:19 Uhr schrieb Simon Peyton Jones via ghc-devs < ghc-devs@haskell.org>: > What’s the approved mechanism t

Re: How does GHC implement layout?

2021-04-05 Thread Sebastian Graf
Hi Alexis, Hi Iavor, I'm afraid I'm not particularly acquainted with how GHC implements indentation-sensitive parsing, but I really like the way in which this book frames the problem. If you look at the preview for the first chapter, you'll notice t

Re: instance {Semigroup, Monoid} (Bag a) ?

2021-04-14 Thread Sebastian Graf
Hi Richard, I've been guilty of slipping in similar instances myself. In fact, I like OrdList better than Bag precisely because it has more instances and thus a far better interface. Not being able to see whether mempty denotes a Bag should be as simple as a mouse hover with HLS set up. So a +99 f

Re: simple Haskell help needed on #19746

2021-04-27 Thread Sebastian Graf
Hi Richard, Maybe I lack a bit of context, but I don't see why you wouldn't choose (3). Extending the lexer/parser will yield a declarative specification of what exactly constitutes a GHC_OPTIONS pragma (albeit in a language that isn't Haskell) and should be more efficient than `reads`, even if yo

Re: Coding style: Using StandaloneKindSignatures in GHC

2021-05-18 Thread Sebastian Graf
Hi Baldur, I'd be fine with declaring a SAKS whenever I'd need to specify a kind signature anyway. But so far I never needed to specify a kind in the data types or type synonyms I declare. I'd say that providing SAKS for types like `OrdList` or `State` where kinds are inferred just fine is ove

Re: GHC and the future of Freenode

2021-05-19 Thread Sebastian Graf
Hi, As one of those contributors that is already using the Matrix-to-freenode-IRC bridge through http://element.io/, I'd prefer moving to Matrix. And *if* we commit to a move, I suggest we don't move to another IRC server. That leaves Zulip vs. Matrix, both of which I'd be fine with. For som

Re[2]: GHC and the future of Freenode

2021-06-16 Thread Sebastian Graf
Re: memory usage: I get that people don't like bloated Electron clients when they already run a browser instance, but fortunately, Element doesn't need to be run as a standalone app (*). Well, except when you want to search encrypted history. But then you're out of luck with irccloud, too... I

Re: Is there a way to prevent reboxing in W/W (due to OPAQUE pragma proposal)

2021-06-24 Thread Sebastian Graf
Hi Christiaan, Wow, the whole OPAQUE pragma proposal and implementation completely slipped my attention. I left a comment on the proposal about GHC.Exts.{lazy,noinline}. Regarding the reboxing problem: You might want to wait for !5790 , wh

Re: Potential improvement in compacting GC

2021-09-02 Thread Sebastian Graf
Hey Ömer, Just in case you are wondering whether you are talking into the void: you aren't! Keep the good suggestions coming, someone will eventually be able to get around to implementing them! Thanks for your write-ups. Cheers, Sebastian Von: ghc-devs im Auftr

Re: Documenting GHC: blogs, wiki pages, Notes, Haddocks, etc

2021-09-14 Thread Sebastian Graf
Hi, I've been using Haddock's named chunks feature too when writing the docs for selective lambda lifting. This is the result: https://hackage.haskell.org/package/ghc-8.10.2/docs/StgLiftLams.html, and this is how the source code looks: https://hackage.haskell.org/package/ghc-8.10.2/docs/src/StgLif

Re: Documenting GHC: blogs, wiki pages, Notes, Haddocks, etc

2021-09-14 Thread Sebastian Graf
; > This should produce a free section that is not linked to any exported item. > I see you're already using them though, so maybe I am understanding > something else? > Le 14/09/2021 à 16:00, Sebastian Graf a écrit : > > Hi, > > I've been using Haddock's nam

Re: Optics?

2021-10-03 Thread Sebastian Graf
Hi Alan, hi Vlad, Yes, one thing that is nice about van Laarhoven lenses is that you don't actually need to depend on anything if all you want is export lenses in your API. We have also discussed using a small lens library in the past, in https://gitlab.haskell.org/ghc/ghc/-/issues/18693. The MVP

Case split uncovered patterns in warnings or not?

2021-11-09 Thread Sebastian Graf
Hi Devs, In https://gitlab.haskell.org/ghc/ghc/-/issues/20642 we saw that GHC >= 8.10 outputs pattern match warnings a little differently than it used to. Example from there: {-# OPTIONS_GHC -Wincomplete-uni-patterns #-}foo :: [a] -> [a]foo [] = []foo xs = ys where (_, ys@(_:_)) = splitAt 0 xsm

Re[2]: Case split uncovered patterns in warnings or not?

2021-11-09 Thread Sebastian Graf
Originalnachricht -- Von: "Richard Eisenberg" An: "Sebastian Graf" Cc: "ghc-devs" Gesendet: 10.11.2021 04:44:50 Betreff: Re: Case split uncovered patterns in warnings or not? Maybe the answer should depend on whether the scrutinee has already been forced. The

Re[2]: Case split uncovered patterns in warnings or not?

2021-11-10 Thread Sebastian Graf
r-gmp-1.0.3.0:GHC.Integer.Type.Jp# _) False (integer-gmp-1.0.3.0:GHC.Integer.Type.Jn# _) | 4 | foo True i = i | ^^^ - Oleg On 9.11.2021 15.17, Sebastian Graf wrote: Hi Devs, In https://gitlab.haskell.org/ghc/ghc/-/issues/20642 we saw that GHC >= 8.10 outp

Re: [EXTERNAL] can GHC generate an irreducible control-flow graph? If so, how?

2021-11-22 Thread Sebastian Graf
An alternative would be to mark both functions as NOINLINE, which the Simplifier will adhere to. You might also want to have `countA` and `countB` close over a local variable in order for them not to be floated to the top-level. If top-level bindings aren't an issue for you, you could simply use mu

Transparently hooking into the STG stack to validate an escape analysis

2021-12-08 Thread Sebastian Graf
Hi Devs, my master's student Sebastian and I (also Sebastian :)) are working on an escape analysis in STG, see https://gitlab.haskell.org/ghc/ghc/-/issues/16891#note_347903. We have a prototype for the escape analysis that we want to validate/exploit now. The original plan was to write the t

Re: Alternatives for representing a reverse postorder numbering

2021-12-09 Thread Sebastian Graf
FWIW, performance of IntMap could be even better if we had mutable fields and a transient (one with freeze/thaw conversion) interface. We'd need a GHC with https://github.com/ghc-proposals/ghc-proposals/pull/8/files for that, though... I think we could also speed up substitution by using a tran

Re[2]: Transparently hooking into the STG stack to validate an escape analysis

2021-12-16 Thread Sebastian Graf
, once Sebastian and I are more familiar with the code base? Thanks for sticking with the project and doing all the hard work that can build upon! Sebastian -- Originalnachricht -- Von: "Csaba Hruska" An: "Sebastian Graf" Cc: "ghc-devs" ; "Sebastia

Re[4]: Transparently hooking into the STG stack to validate an escape analysis

2021-12-17 Thread Sebastian Graf
(Moving the conversation off the list.) -- Originalnachricht -- Von: "Csaba Hruska" An: "Sebastian Graf" Cc: "ghc-devs" ; "Sebastian Scheper" Gesendet: 16.12.2021 18:22:30 Betreff: Re: Re[2]: Transparently hooking into the STG stack to valida

Re[2]: Strictness/demand info for a Name

2022-01-13 Thread Sebastian Graf
Yes, Matt is right. `dmdSigInfo` describes the how a function Id uses its arguments and free variables, whereas `demandInfo` describes how a (local, mostly) Id is used. Note that if you wanted to go beyond type-checking, you could probably run the analysis on the desugaring of the current mod

Re[4]: Strictness/demand info for a Name

2022-01-13 Thread Sebastian Graf
ot;Alejandro Serrano Mena" An: "Sebastian Graf" Cc: "GHC developers" ; "Matthew Pickering" Gesendet: 13.01.2022 16:43:50 Betreff: Re: Re[2]: Strictness/demand info for a Name Thanks for the pointers! :) Knowing this, let me maybe rephrase my question: i

Re: How to exploit ./hadrian/ghci to find errors quickly?

2022-01-28 Thread Sebastian Graf
This is the typical use case for a language server. I have haskell-language-server installed and use it extensively on GHC for stuff like jump to definition and immediate compilation feedback. There's also "jump to next error" if you want that. Installation was pretty trivial for me, just flipp

Re[2]: How to exploit ./hadrian/ghci to find errors quickly?

2022-01-29 Thread Sebastian Graf
Great! Glad I could help. FWIW, if I have strange HLS bugs, I mostly restart it (if it had worked before) or delete .hie-bios, where HLS stores its build results. HLS builds the same stuff as what hadrian/ghci needs to build. The former puts it in .hie-bios, the latter in ... .hadrian-ghci? Not

Re[2]: Avoiding `OtherCon []` unfoldings, restoring definitions from unfoldings

2022-04-05 Thread Sebastian Graf
Top-level data structures tend to get OtherCon [] unfoldings when they are marked NOINLINE. KindRep bindings are one particular example, and they appear quite often, too. Why are KindReps are NOINLINE? Because (from Note [Grand plan for Typeable]) The KindReps can unfortunately get quite

Re: Release Updates - 9.4.1 and 9.2.3

2022-04-06 Thread Sebastian Graf
Hi Matthew, Depending on whether https://gitlab.haskell.org/ghc/ghc/-/issues/21229 is deemed a blocker for 9.4 (I'd say it is, but YMMV), we should include https://gitlab.haskell.org/ghc/ghc/-/merge_requests/7788 in the list. Perhaps we should make it dependent on whether !7788 is ready to merge b

Markup language/convention for Notes?

2022-04-13 Thread Sebastian Graf
Hi Devs, When writing Notes, I find myself using markdown-inspired or haddock-inspired features. The reason is that I keep telling myself > In 5 years time, we'll surely have an automated tool that renders Notes referenced under the cursor in a popup in our IDE And I might not be completely

Re: ambiguous record field (but not *that* kind of ambiguous record field)

2022-05-16 Thread Sebastian Graf
Hi Richard, I'm not sure if I'm missing something, but my adolescent naivety in frontend matters would try to reach for https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0155-type-lambda.rst#motivation and write MkRec { field = \@a -> ... } and I hope that will do the ri

Re: Pushing to nofib

2022-09-27 Thread Sebastian Graf
Hi Simon, Similar to the policy for the main GHC repo, you have to push to a wip/ branch (or your personal fork) and then open a MR against the NoFib repo. Fortunately, the quality requirements for NoFib aren't high and it's likely your MR can be merged instantly. Cheers, Sebastian -- O

Re: Status of Stream Fusion?

2022-11-14 Thread Sebastian Graf
at exactly the challenges are that are > left. I believe one of the main remaining problems is the fusion of > ‘concatMap’. Is that really the only thing? > > Secondly, I would like to know what has already been tried. I know > Sebastian Graf has spent a lot of effort trying to get

Re: Status of Stream Fusion?

2022-11-14 Thread Sebastian Graf
> I believe the reason that this is easier than higher order matching in general because it is restricted to applications of unification variables to locally bound variables. Indeed, it is easier to confine oneself to the pattern fragment. I think that's entirely the point of pattern unification:

Re: Status of Stream Fusion?

2022-11-14 Thread Sebastian Graf
simpler than existing algorithms for > both higher order unification and higher order matching. > > I’ll do some experiments with the rule matcher. > > Cheers, > Jaro > > > On 14 Nov 2022, at 14:03, Sebastian Graf wrote: > > > > > I believe the reason th

Re[2]: Help! Can't build HEAD

2023-03-15 Thread Sebastian Graf
Hi Simon, I had that very issue a few days ago, but saw this thread too late. For me it was enough to cd into utils/hpc and do a `git checkout .`. Sebastian -- Originalnachricht -- Von: "Simon Peyton Jones" An: "Sam Derbyshire" Cc: "Sam Derbyshire" ; "GHC developers" Gesendet: 15.0

Re: Trouble building GHC

2023-05-31 Thread Sebastian Graf
Hi Lyle, I'm sorry that you have so much trouble in getting your first build done. The Classes.hi issue sounds like something I had experienced in the past, but I'm not having it at the moment. Are you also using symlinks by any chance? Then it is very likely that you have been bitten by https://g

Re: Trouble building GHC

2023-05-31 Thread Sebastian Graf
ghc shell function that the > flake provides. > On 5/31/23 10:13, Sebastian Graf wrote: > > Hi Lyle, > > I'm sorry that you have so much trouble in getting your first build done. > The Classes.hi issue sounds like something I had experienced in the past, > but I'm not

Minutes of Sunday's meeting of the "Staged Working Group"

2023-06-13 Thread Sebastian Graf
Hi GHC devs, On Sunday I realised that there were many different people around at ZuriHac that are very knowledgeable about staged metaprogramming and macro systems (outside GHC, even). I really want a good staged metaprogramming story in Haskell (but don't know much about it or what I could c

RFC Or patterns syntax: (p1 | p2) vs. (p1; p2)

2023-07-24 Thread Sebastian Graf
Hi devs, I would like to invite you to provide arguments for or against the Or patterns syntax RFC `(p1; p2)` vs. `(p1 | p2)` over at this GH issue . *In particular, `(p1 | p2)` has a small lead over `(p1; p2)`*, but the latter will steal

Re: Reinstallable - base

2023-10-20 Thread Sebastian Graf
Hi, Thanks, Ben, that sounds very interesting. Allow me to provide the following perspective. It seems that those `*-internal` packages take the role of a static library's symbol table in the absence of a fixed ABI: It allows clients (such as `base` and `template-haskell`) to link against fixed, i

Re: PMC: addConCt and newtypes bottom info

2023-10-27 Thread Sebastian Graf
ecome relevant in `generateInhabitingPatterns` for warning messages, but there we eagerly instantiate through NTs anyway. So by all means, open an MR for your change. Good work! Sebastian -- Originalnachricht -- Von: "Rodrigo Mesquita" An: "Sebastian Graf" Cc: &

Re: Cabal woe

2024-07-09 Thread Sebastian Graf
Hi Simon, Hi Matt, I think Simon has a point. I really do not enjoy creating a new throwaway project for every small reproducer I want to test. A cabal project means that I can't simply pass `-fforce-recomp -ddump-simpl -O` to a GHC invocation, for example. Instead I have to create a cabal file an

Re[2]: Can't initialise vendored submodule

2024-08-18 Thread Sebastian Graf
Hi, I also frequently encounter these errors. I think they are caused by me copying from an ancient local clone, one that still has historic account of when hadrian used to live in its own submodule. Recently, the hadrian system vendored Cabal into hadrian/vendored/Cabal, but the root reposito

Re: [Haskell-cafe] Benchmarking harnesses for a more modern nofib?

2016-04-05 Thread Sebastian Graf
(sorry for duplicates, realized I couldn't post to the mailing list without registering) Hi Ryan, I'm the student working on the CI part Joachim mentioned. It's not quite there yet, but the ground work is done. Basically, I'm writing a daemon that will read a config file for a list of git re

  1   2   >